Zadaję to pytanie, ponieważ chciałbym wiedzieć, jaki jest najlepszy przepływ pracy programistycznej dla kogoś, kto chce zarządzać wszystkimi aspektami sklepu internetowego.
Oczywiście, podobnie jak w przypadku całego tworzenia stron internetowych, posiadanie kopii na żywo i co najmniej jednej kopii programowej całego oprogramowania jest oczywiście bardzo ważne. Jednak zarządzanie rzeczami Magento nie jest podobne do zarządzania innym oprogramowaniem opartym na plikach, ponieważ istnieje również komponent bazy danych, który wchodzi w grę, więc poza tym, że mogę używać narzędzia takiego jak Git jako narzędzia VCS do kontroli źródła, w jaki sposób Czy zajmuję się zarządzaniem różnicami w bazie danych między wersją na żywo a wersjami programistycznymi?
Mógłbym oczywiście tworzyć kopie zapasowe bazy danych na żywo za pośrednictwem crona i wstawiać instrukcje SQL INSERT z kopii zapasowej do kontroli źródła, ale potem dwie bazy danych ewoluują osobno, podczas gdy klienci rejestrują i składają zamówienia z jednej strony, które trafiają do bazy danych na żywo, i ponieważ aktualizacje są wprowadzane do bazy danych programowania oddzielnie. Jeśli chodzi o łączenie wersji rozwojowych i wersji na żywo, pliki php można bez problemu aktualizować za pomocą git (używając gitignore na jednym pliku, który udostępnia szczegóły konfiguracji bazy danych), ale co z plikami bazy danych? Jak mogę połączyć dwa pliki zawierające instrukcje INSERT SQL z dwóch kopii zapasowych bez powodowania awarii i zniszczenia systemu?
To jest zacieniony obszar cyklu życia Magento, przed którym stoję: zarządzanie różnicami w bazach danych.
Wydaje mi się, że jedynym rozwiązaniem do synchronizacji zawartości bazy danych, która różni się między wersją programistyczną / testową a wersją na żywo sklepu Magento, jest zapisanie na kartce papieru wszystkich zmian dokonanych w wersji programistycznej za pośrednictwem panelu administracyjnego Magento, i mam nadzieję, że nie popełnisz żadnych błędów, a potem, gdy wszystko zostanie przetestowane i zadziała, przejdzie do wersji na żywo i dokona tych samych zmian, gdy Magento zostanie wyłączony i przejdzie w tryb konserwacji. Ponieważ jest to proces ręczny, jest podatny na błędy.
Więc jaki jest lepszy sposób obsługi synchronizacji baz danych między testowym serwerem Magento a serwerem Live Magento?
Dzięki.