Как лучше всего использовать очарование mysql в Жужу с динамическими базами данных?

Я создаю очарование Джуджу, чтобы охватить многие проекты по развитию Джанго. У меня есть прелесть установки Django, WSGI и Apache2. Django использует отдельную базу данных, пользователя и пароль для каждого созданного проекта. Как я могу предоставить эти учетные данные обаянию, если у обаяния mysql есть только один набор учетных данных базы данных? Я хотел бы проанализировать пути Python для всех установленных проектов Django и иметь готовый к использованию MySQL-талисман. Как вы можете видеть ниже, пользователь должен будет установить их вручную и изменить их при развертывании нового / другого проекта Django в облаке.

user=`relation-get user`
password=`relation-get password`
host=`relation-get host`
database=`relation-get database`

Мой вопрос: нужно ли создавать сценарий bash для автоматического создания подвесок mysql с соответствующим именем для проекта Django?

3
задан 22 May 2012 в 21:17

2 ответа

Вы можете создать новый брелок mysql с новым интерфейсом, который может динамически распределять БД по запросу и использовать его из вашего брелока django, или развертывать проекты как отдельные сервисы.

По сути, новый интерфейс для mysql будет иметь хуки, которые будут выделять новые базы данных в соответствии с запросом подключающейся службы, а не создавать их, когда новая служба связана / подключена к mysql.

Другой вариант, исправьте ваши проекты django, чтобы использовать префиксы таблиц, что, как я думал, они уже сделали (или, может быть, это префикс таблиц приложений в проекте).

Редактировать

Лучшее решение может состоять в том, чтобы просто использовать отношение интерфейса администратора, которое дает вам пользователя root на mysql, а затем вы можете создавать дополнительные dbs по мере необходимости (указал мне на irc by clint) для всех установленных проектов django.

0
ответ дан 22 May 2012 в 21:17

MySQL имеет несколько интерфейсов, один из которых разработан специально для вашего приложения, чтобы иметь привилегии администратора для всего сервера. Таким образом, вы просто установите отношения

requires:
  db:
    interface: mysql-root

. Это обеспечит вам «корневых» пользователей с привилегиями, которые вы можете использовать для создания баз данных / пользователей / и т. Д. Вы не получите «базу данных», так как вы можете создать любую базу данных, так что имейте это в виду.

0
ответ дан 22 May 2012 в 21:17

Другие вопросы по тегам:

Похожие вопросы: