Развертывание Django с использованием git, включая файлы, относящиеся к производству - PullRequest
5 голосов
/ 24 июня 2010

Я хочу использовать git для развертывания проекта django, как я это делал раньше, но на этот раз также необходимо иметь производственные файлы (например, загруженные файлы, sql db и т. Д.) Где-то в хранилище, чтобы вы могли может легко работать локально с теми же данными, что и на сервере; моя идея будет иметь три ветви:

  • master (на котором "нормальная" разработка выполняется / фиксируется)
  • production (с дополнительными производственными файлами (загрузка файлов и т. Д.) *
  • развертывание (производство с настройками и т.д., используемое для работы на сервере)

Проблема для меня: как объединить изменения, сделанные в master, в производственную ветку, не изменяя и не уничтожая производственные данные?

Есть ли способ сделать слияние выборочно (например, не трогать файлы в медиафайлах / закачках), или сделать какое-то "выборочное отслеживание ветвей" или любую другую возможность справиться с этим?

С другой стороны, мне также нужно иметь возможность легко извлекать полные данные, поступающие из производственного использования, с сервера, например, для некоторой отладки ... (Я оставляю изменения схемы базы данных из этих соображений прямо сейчас, потому что они могут быть сделаны вручную или отдельно)

1 Ответ

1 голос
/ 25 июня 2010

Меня немного смущают имена ваших серверов, я больше привык к: производству, постановке, разработке.

вам, вероятно, следует вывести базу данных в виде кода sql или каким-либо другим способом, которым вы хотите вывести данные, а затем перенести их на ваш главный сервер (разработка?). Вы можете сделать это, загрузив его в git-репозиторий на рабочем месте и потянув его на разработку. Ткань сделает это очень легко.

но размещение данных в git-репозитории, вероятно, не такая уж хорошая идея, я не пробовал объединять дампы базы данных, поэтому я не слишком уверен. о каком количестве данных вы говорите? git работает быстро, но объединение и фиксация больших дампов базы данных может быть болезненным процессом.

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

при изменении базовых моделей django мы используем South на нашем промежуточном и производственном сервере для перехода на новую базу данных.

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

если вы все еще хотите добавить статические элементы в ваш репозиторий git, просто добавьте статические файлы в подкаталог. затем вы можете либо настроить файловый сервер для обслуживания прямо из этого подкаталога, либо, если это кажется слишком небезопасным, выполнить git pull в другое место, а затем скопировать файлы в / var / www-static / с Fabric.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...