Jaka jest najlepsza procedura łączenia pracy nad wersją rozwojową witryny z kopią produkcyjną na żywo? Często do witryny dodawano wiele nowych treści, odkąd rozpoczęto prace nad najnowszymi funkcjami. Większość dodatków do witryny będzie wymagać zmian w bazie danych. Kopiowanie nowych plików jest więc łatwe, ale co z bazą danych? Jak scalić zmiany z istniejącą produkcyjną bazą danych bez utraty nowej zawartości, która została dodana od ostatniej aktualizacji witryny produkcyjnej? Czy są jakieś moduły, które mogą w tym pomóc?
40
Odpowiedzi:
Aby zapoznać się z typami treści, widokami i zmianami struktury w witrynie deweloperów, skorzystaj z opcji Funkcje, aby wyeksportować bazę danych do kodu.
W przypadku migracji treści istnieje wiele opcji, ale nie ma jednego solidnego rozwiązania. Jednym z przykładów jest pakiet wdrażania .
źródło
Zaadaptowałem tu w zasadzie dwie szkoły myślenia (trzecia szkoła myślenia, robiąc różnice w bazach danych, nie będę dyskutować, ponieważ złożoność jest dość wysoka).
1) Wdróż, upuszczając produkcyjną bazę danych i importując mysqldump programistycznej bazy danych. Opcjonalnie uruchom wcześniej wyrażenie regularne znajdź / zamień na wszelkich bezwzględnie zakodowanych linkach bezwzględnych, które odwołują się do adresu URL dewelopera w zrzucie SQL. Po zaimportowaniu bazy danych dev do prod, automatycznie uruchom następnie instrukcje SQL (zwykle za pomocą skryptu), aby zmienić wszelkie ustawienia, które są inne dla prod niż dev (np. Może masz w tabeli zmiennych niektóre ustawienia połączeń do łączenia się z systemami zewnętrznymi, które musisz zmień punkt na zewnętrzne systemy prod zamiast na wersję deweloperską).
2) Użyj modułu Funkcje , jak wspomniał budda, do ustawień administratora i użyj modułu Eksportuj węzeł do eksportu / importu zawartości w połączeniu z modułem Usuń wszystko . Więc przepływ pracy to:
Jedna uwaga, zdecydowanie zalecam przyjęcie standardowego przepływu pracy, w którym treść idzie tylko w jednym kierunku. Albo Dev -> Prod lub Prod -> Dev (wolę ten).
Zrobiłem to i robię to na niektórych dużych systemach, z dość dobrymi wynikami, ale zawsze będzie wiele sposobów pokrojenia tego jabłka, wybierz ten, który najbardziej Ci odpowiada.
źródło
Zrzuć bazy danych kopii witryny na żywo i kopii rozwojowej witryny w pliku SQL (użyj tych samych parametrów i ustawień dla obu zrzutów).
Następnie porównaj oba pliki SQL za pomocą małego narzędzia do porównywania ExamDiff . Wyświetli różnice plików obok siebie w różnych kolorach. Możesz również bezpośrednio przejść do różnic (bez przewijania). Sprawdź różnice i dodaj / edytuj wiersze do pliku SQL działającej witryny. Upewnij się, że w tym pliku nie ma bezwzględnej ścieżki / adresu URL środowiska programistycznego. To już koniec! Czas przywrócić bazę danych na żywo.
Ułatw sobie życie:W pierwszym kroku zrzuć tylko te tabele, które zostały zmienione. Na przykład, jeśli edytowałeś moduł w kopii rozwojowej, który jest skierowany na osobną tabelę, zrzuć tylko tę tabelę. Jeśli nie masz pewności co do konkretnej tabeli, zrzut całej bazy danych jest w porządku.
źródło