Prowadzę swój nieduży serwis napisany w php+mysql, oparty o jeden z większych frameworków. Serwis ten nie jest "ukończony" - ciągle wprowadzam nowe funkcjonalności. Wymaga to oczywiście edycji kodu a także również schematu w bazie danych (nowe pola, nowe tabele). Podczas pracy nad stroną zmiany w kodzie/schemacie bazy przeprowadzam na lokalnym serwerze.
I teraz pytanie: jak wprowadzone zmiany wydajnie i szybko wdrożyć na serwerze produkcyjnym?
Mógłbym przesłać pełny katalog projektu bezpośrednio na serwer, ale wiąże się to z przesyłaniem setek zbędnych plików oraz plików które różnią się między serwerem produkcyjnym a lokalnym (np. pliki z konfiguracją). Aktualnie po prostu robię listę plików które zmieniły się od ostatniej aktualizacji (pomaga tu vcs) i tylko te pliki wysyłam, ale wiąże się to z mozolnym, ręcznym skakaniem po katalogach i wysyłaniem pojedynczych plików poprzez FTP. Podobnie sytuacja przedstawia się z bazą danych, z tym że wszelkie zmiany wprowadzone lokalnie na serwerze dodaje ręcznie za pomocą phpMyAdmina.
Na koniec dodam, że serwer produkcyjny to VPS, mogę instalować tam dowolne oprogramowanie.