В моей компании у нас есть полный репозиторий git для каждого проекта, включая исходные тексты Django, которые помещаются в PYTHONPATH
для каждого проекта, что делает зависимость версий проекта Django зависимой.Структура папок выглядит примерно так:
/.git
/projectname/app1
/projectname/app2
/projectname/manage.py
/django-lib/django/...
Поскольку django-lib
не является модулем Python, мы включаем и / и / django-lib в PYTHONPATH
.Если ваш проект становится большим, вы можете рассмотреть возможность использования в своих приложениях подмодулей git .
Мы также настроили несколько серверов для поддержки разработчиков.Есть тестовый сервер, на котором запущена центральная база данных тестирования, и настройка, включающая Apache с WSGI, чтобы сделать возможным тестирование на реальном сервере, который иногда немного отличается от локального manage.py
, который используют разработчики до принятия своих изменений.
На сервере тестирования обновлена основная ветка нашего репозитория git.Мы создали несколько сценариев, позволяющих всем разработчикам делать это, не позволяя им войти на сервер через SSH, но это только во время предварительной версии.После выпуска этот сервер станет нашим промежуточным сервером, и мы удалим из него все сценарии, чтобы он стал таким же, как наш рабочий сервер.
Каждый разработчик настраивает свой локальный проект для обеспечения связи с центральной базой данных тестирования, содержащей несколько данных испытаний.Я сам переношу свои изменения из командной строки, но вы также можете использовать для этого EGit .
Когда у нас есть релиз, мы помещаем его в отдельную ветку, называемую «релиз».(очевидно) и рабочий сервер будет тянуть только из той ветки.Это делается через SSH, но я не знаю, как выглядит настройка вашего сервера, поэтому я думаю, что последний шаг полностью за вами.
Надеюсь, это вам немного помогло.Я не скажу, что это лучший возможный рабочий процесс, но он работает для нас, и вы должны выяснить, что работает для вас.