2008-09-01 9 views
7

Я знаю Capistrano, но для меня это слишком тяжело. Лично я создал два репозитория Mercurial, один на рабочем сервере и другой на моей локальной машине. Регулярно, когда новая функция готова, я вывожу изменения из репозитория на своей локальной машине в репозиторий на сервере, а затем обновляю на сервере. Это довольно простой и быстрый способ синхронизировать файлы на нескольких компьютерах, но не помогает обновлять базу данных.Как вы обновляете свое веб-приложение на сервере?

Какое решение возникло из проблемы?

ответ

1

Раньше я использовал git push для публикации на своем веб-сервере, но в последнее время я только что использовал rsync. Я стараюсь сделать свой сайт агностиком о том, где он работает, насколько это возможно (используя относительные пути и т. Д.), И до сих пор он работал очень хорошо. Единственная проблема - синхронизация баз данных, и для этого я обычно использую производственную базу данных в качестве мастера и делаю регулярные резервные копии и импорт в свою тестовую базу данных.

+0

Я делаю то же самое, но в последнее время мне кажется, что это действительно не атомный. Не оптимально для постоянно используемого веб-сайта (люди могут получить доступ к нему на сломанной стадии, когда еще не все файлы были повторно обработаны). – Gilles 2008-10-03 19:34:33

+0

Я добавлю, что более оптимальным способом сделать это является rsync в папку A, в то время как папка B содержит ваш веб-сайт в реальном времени, а затем делает форму перехода от A до B, переписывая символическую ссылку, указывающую на текущую версию. А затем в следующий раз, rsync к B. – Gilles 2008-10-03 19:36:09

0

@ Андрей

Чтобы использовать Git толчок для развертывания вашего сайта вам нужно будет сделать первый настроить удаленный сервер в файле .git/конфигурации, чтобы подтолкнуть к. Затем вам нужно настроить крючок, который в основном выполнит сброс git-hard, чтобы скопировать код, который вы только что скопировали в репозиторий, в рабочий каталог.

Я знаю, что это немного расплывчато, но я фактически удалил серверную .git-папку на сервере, когда я переключился на rsync, поэтому у меня нет точных скриптов, которые я использовал для совершения магии. Это может быть хорошим кандидатом на полный вопрос, хотя, поэтому вы можете получить больше ответов таким образом.

редактировать: Я знаю, что это было некоторое время, но я в конце концов нашел то, что я снова с помощью:

Deploy a project using Git push

1

Что такое тяжелый вес о capistrano? если вы хотите синхронизировать файлы, тогда обязательно rsync отлично. но если вам нужно будет делать обновления db, возможно, колпачок не так уж плох?