Способы сохранения отдельных настроек для разных сред? - PullRequest
1 голос
/ 05 января 2012

В моем проекте django есть две среды: разработка и тестирование.Сегодня я небрежно перезаписал settings.py в тесте с тем, что находится в разработке.Мне потребовалось некоторое время, чтобы исправить настройки в тесте, чего можно было бы избежать, если бы у меня был хороший способ поддерживать два набора настроек по отдельности.

Я думал сохранить две отдельные копии settings.pyи переименуйте / переместите их, когда это необходимо.Это, однако, своего рода подход пещерного человека.Есть ли более разумные способы решения этой проблемы?

Ответы [ 2 ]

3 голосов
/ 05 января 2012
  1. В конце файла settings.py добавьте:

    try:
        from settings_dev import *
    except ImportError: pass
    

    Где settings_dev.py будет содержать настройки dev.И в вашей рабочей среде не нажимайте settings_dev (просто игнорируйте его в .gitingore или в вашей системе управления версиями исходного кода.)

    Поэтому, когда присутствует файл settings_dev.py, файл settings.py будет перезаписанфайл settings_dev.py.

  2. Еще один подход путем установки переменной среды:

    if os.environ.get('DEVELOPMENT', None):
        from settings_dev import *
    

    , упомянутый здесь: Django settings.py для разработки и производства

Я предпочитаю первый, он прост и просто работает.

2 голосов
/ 21 февраля 2014

Разделите ваши настройки, как описано здесь:

https://code.djangoproject.com/wiki/SplitSettings#SimplePackageOrganizationforEnvironments

...