2008-09-01 20 views
7

Jestem świadomy Capistrano, ale jest on dla mnie zbyt ciężki. Osobiście skonfigurowałem dwa repozytoria Mercurial, jeden na serwerze produkcyjnym, a drugi na moim lokalnym komputerze dev. Regularnie, gdy nowa funkcja jest gotowa, przesyłam zmiany z repozytorium na moim komputerze lokalnym do repozytorium na serwerze, a następnie aktualizuję na serwerze. Jest to dość prosty i szybki sposób synchronizacji plików na kilku komputerach, ale nie pomaga w aktualizacji bazy danych.Jak aktualizujesz swoją aplikację internetową na serwerze?

Jakie jest Twoje rozwiązanie problemu?

Odpowiedz

1

Używałem git push do publikowania na moim serwerze internetowym, ale ostatnio używałem właśnie rsync. Staram się, aby moja strona była agnostyczna, jeśli chodzi o to, gdzie działa, jak to możliwe (przy użyciu względnych ścieżek itd.) I jak na razie działa całkiem dobrze. Jedynym wyzwaniem jest zsynchronizowanie baz danych i zwykle używam produkcyjnej bazy danych jako wzorca i regularnie tworzę kopie zapasowe i importuję do mojej testowej bazy danych.

+0

Robię to samo, ale ostatnio dało mi to do myślenia, że ​​to naprawdę nie jest atomowe. Nie jest optymalna dla witryny używanej stale (ludzie mogą uzyskać do niej dostęp w złym momencie, gdy nie wszystkie pliki zostały już zsynchronizowane). – Gilles

+0

Dodam, że bardziej optymalnym sposobem na zrobienie tego jest rsync do folderu A, podczas gdy folder B zawiera twoją stronę na żywo, a następnie wykonaj zamianę formularza od A do B przez nadpisanie dowiązania symbolicznego, które wskazuje bieżącą wersję na żywo. A następnym razem, rsync do B. – Gilles

0

@Andrew

Aby użyć git push wdrożyć witrynę trzeba zrobić najpierw skonfigurować serwer zdalny w pliku .git/config przesuwania się. Następnie musisz skonfigurować hak, który w zasadzie wykona reset git - trudno skopiować kod, który właśnie skopiowałeś do repozytorium, do katalogu roboczego.

Wiem, że to trochę mgliste, ale w rzeczywistości skasowałem folder .git po stronie serwera, gdy przełączyłem się na rsync, więc nie mam dokładnych skryptów, których użyłem do stworzenia magii. To może być dobry kandydat na pełne pytanie, więc możesz uzyskać więcej odpowiedzi w ten sposób.

edit: wiem, że to było trochę czasu, ale w końcu znalazł to, czego się ponownie przy użyciu:

Deploy a project using Git push

1

Albo Fabric, jeśli wolisz Python.

+0

Więcej szczegółów na temat tkaniny: http://stackoverflow.com/questions/1233655/what-is-the-simplest-way-to-ssh-using-python – hughdbrown

1

co jest ważniejsze w przypadku capistrano? jeśli chcesz zsynchronizować pliki, upewnij się, że rsync jest świetny. ale jeśli będziesz potrzebować aktualizacji db, to czy czapka nie jest taka zła?

Powiązane problemy