Лучший способ перенести файлы с Dev на сайт Live (django) - PullRequest
2 голосов
/ 18 июля 2009

Я получил svn checkout локально, в который я вносил изменения, после того как я их зафиксировал, я захожу и обновляю свою копию на сервере.

Мой вопрос: как лучше всего передать мои файлы на мой рабочий сайт? Я не очень разбираюсь в командах Linux, но я думал, что смогу создать сценарий, который переместит все файлы, кроме файлов .pyc и .svn, на мой рабочий сайт? Я действительно не знаю, каков наилучший способ, и я хотел бы услышать от некоторых экспертов о том, как сделать это правильно.

Ответы [ 3 ]

7 голосов
/ 18 июля 2009

Я обычно запускаю напрямую из svn checkout. Войдите на рабочий сервер, обновите версию или тег, который был сочтен достойным, перезапустите сервер, и все готово.

Это имеет то преимущество, что заставляет вас убедиться, что все находится под контролем версий, потому что производственный сайт выходит прямо из хранилища. Очевидно, что вы можете автоматизировать развертывание, используя что-то вроде Fabric , если хотите.

3 голосов
/ 18 июля 2009

Разве вы не можете хранить svn репо (возможно, R / O) на вашем сервере и просто иметь его svn up при необходимости? Таким образом, svn: ignore может позаботиться о том, чтобы игнорировать определенные файлы, & c.

Если это слишком громоздко, я бы поработал, упаковав «релиз» (набор проверенных и работающих вместе файлов), когда он будет готов (также пометив его для простого отката в svn) - скажем, в .tar.bz2 или .zip архивировать - и отправить это на сервер, где он расширяется. Таким образом, вы получите точную информацию о том, что именно вы выпустили, и сможете более легко справляться с отчетами об ошибках QA; это также спасет вас, если вам когда-нибудь понадобится заняться ветвлением.

В целом, релиз-инжиниринг - важная и часто недооцениваемая дисциплина, и о ней стоит почитать, даже если сейчас вам еще не нужно делать что-то сложное или структурированное в это поле.

1 голос
/ 18 июля 2009

Если вы не хотите запускать свой собственный сервер репо и хотите потратить некоторое время на изучение mercurial или git, вы можете быстро настроить публичный или частный репозиторий на bitbucket или github.

Поток таков: делайте свои коммиты локально, переходите к онлайн-репо, входите на свой сервер, переключайтесь на проект и извлекайте изменения. Одно из практических правил - никогда не редактировать код проекта на сервере, всегда фиксировать локально и отправлять, а затем отправлять на сервер. local_settings.py - единственный файл, который я редактирую непосредственно на сервере.

Я использую файл требований pip для внешних зависимостей, и его так же просто, как набрать 'pip install --requirement external_apps.txt', чтобы синхронизировать зависимости. Это также помогает использовать virtualenv для управления несколькими проектами (по крайней мере локально) и сценарий развертывания структуры для упрощения процесса развертывания.

Да, и все VCS имеют файл .ignore, в котором вы можете предотвратить появление таких файлов, как local_settings.py и * .pyc, в вашем репо.

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