Форум сайта python.su
Доброго времени суток ;)
Вот волею судеб(яндекса с гуглом ;) ) Натнулся на джангу и стал осваивать …. Пока больше плюсов нарыл чем минусов … Но вот вопросик собственно как лучше разнести настройки сайта\базы для ветки разработки и стабильного хвоста ?
мне ничего умнее решения в лоб - перекурочить settings.py
try:
from app_config import *
except ImportError :
DEBUG = True
TEMPLATE_DEBUG = DEBUG
ADMINS = (
('XXX', 'XXXX'),
)
MANAGERS = ADMINS
DATABASE_ENGINE = 'postgresql_psycopg2' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
DATABASE_NAME = 'db1' # Or path to database file if using sqlite3.
DATABASE_USER = 'ikdj' # Not used with sqlite3.
DATABASE_PASSWORD = 'pass' # Not used with sqlite3.
DATABASE_HOST = '' # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = '' # Set to empty string for default. Not used with sqlite3.
Офлайн
У вас получилось некое гибридное решение между монолитным файлом и разделением на общую и частную часть.
Идеологически конечно лучше избавиться от try except и продакшен настройки тоже хранить отдельным файлом.
Вообще ситуация классическая. Есть несколько сред в которые нужно выкатывать проект. Это разработка, тестирование и продакшен. Последние две среды обычно строго детерминированы и их настройки для удобства можно хранить в системе контроля версий, например в отдельной директории.
С разработчискими машинами всё чуть сложнее, предсказать какие-то настройки отдельных девелоперов трудно и они и сами под себя настраивают среду. Соответственно их настройки хранить в репозитории не надо.
Чтобы локальные настройки не смешивались, я бы предложил в тестинге и продакшен файл app_config делать символьными ссылками на соответствующий файл в репозитории. Девелоперы же пусть прям в корень проекта кладут свои локальные настройки и вольно их меняют по необходимости.
Ваш способ конечно имеет право на жизнь, но я считаю, что если уж делить настройки на локальные и глобальные то уж до конца. Ну и варианту “попробовать” даже на боевых машинах это не мешает как при отдельном инстансе проекта, так на живом.
Офлайн
ну тогда уж симлинк на settings.py под текущий вариант … но очередные грабли - у меня товарсч пасеться на ХРюше … и нехотит слезать(ну его право) а мам …. ну как-то кисло с линками ….
делать _копию_ файла imho не кошерно - зачем болото разводить … вот и решили с дополнительным конфигом повыпендриваться…
Офлайн
MaddyНет, это уже другое - суть глобальных и локальных настроек теряется.
ну тогда уж симлинк на settings.py под текущий вариант ..
MaddyНе понял вас. Наверно на другой язык перешли:-)
но очередные грабли - у меня товарсч пасеться на ХРюше … и нехотит слезать(ну его право) а мам …. ну как-то кисло с линками ….
Офлайн
DaevaornНаверное ;) Я сам предпочитаю Дебиан для разработки … А напарник на WinXP (хрюшка;) ) и она (ХР) только хард-линки понимает вроде ….
Maddy написал:
но очередные грабли - у меня товарсч пасеться на ХРюше … и нехотит слезать(ну его право) а мам …. ну как-то кисло с линками ….
Не понял вас. Наверно на другой язык перешли:-)
Офлайн
lorienО блин ! зачот ;) спасибо за снятие с ручника ;)
Я просто делаю *в конце* settings.py
Офлайн
MaddyВ любом случае всегда можн явным образом указать файл настроек. Который вовсе не обязательно должен лежать в директории проекта и называться settings.py
А напарник на WinXP (хрюшкаwink ) и она (ХР) только хард-линки понимает вроде ….
Офлайн
Junction - симлинки для Win (на NTFS)
Сам иногда использую.
Отредактировано (Фев. 17, 2009 15:22:51)
Офлайн
lorienя тоже так сделал примерно:
Я просто делаю *в конце* settings.py
Отредактировано (Фев. 24, 2009 14:15:35)
Офлайн