Я создаю очарование Джуджу, чтобы охватить многие проекты по развитию Джанго. У меня есть прелесть установки 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?
Вы можете создать новый брелок mysql с новым интерфейсом, который может динамически распределять БД по запросу и использовать его из вашего брелока django, или развертывать проекты как отдельные сервисы.
По сути, новый интерфейс для mysql будет иметь хуки, которые будут выделять новые базы данных в соответствии с запросом подключающейся службы, а не создавать их, когда новая служба связана / подключена к mysql.
Другой вариант, исправьте ваши проекты django, чтобы использовать префиксы таблиц, что, как я думал, они уже сделали (или, может быть, это префикс таблиц приложений в проекте).
Редактировать
Лучшее решение может состоять в том, чтобы просто использовать отношение интерфейса администратора, которое дает вам пользователя root на mysql, а затем вы можете создавать дополнительные dbs по мере необходимости (указал мне на irc by clint) для всех установленных проектов django.
MySQL имеет несколько интерфейсов, один из которых разработан специально для вашего приложения, чтобы иметь привилегии администратора для всего сервера. Таким образом, вы просто установите отношения
requires:
db:
interface: mysql-root
. Это обеспечит вам «корневых» пользователей с привилегиями, которые вы можете использовать для создания баз данных / пользователей / и т. Д. Вы не получите «базу данных», так как вы можете создать любую базу данных, так что имейте это в виду.