Obecnie używam skryptu zrzutu i zatwierdzam bazę danych do repozytorium git.
--skip-extended-insert --skip-comments --skip-dump-date
oznacza, że diff może dać mi dobre wyobrażenie o tym, co się zmieniło, ale wszystko spada, jeśli próbuję się połączyć.
WP_SITEURL, WP_HOME i wszystkie inne miejsca Wordpress przechowuje pełne adresy URL wymagają aktualizacji podczas importowania na inny host (testowanie, inscenizacja, produkcja)
Czy ktoś używa lepszej metody?
Główne kwestie:
- Wordpress przechowuje pełne adresy URL w całej bazie danych (nieprzenośne)
- Wiele innych, nieistotnych zapisów się zmienia
- wartości auto_increment (po prostu usuwam je, ale mam problemy z identyfikatorem)
- znaczniki czasu (można również potencjalnie usunąć)
- przejściowe * nagrania ... nie mam pojęcia, co z nimi zrobić
Proces, który utworzył migracje ze znacznikiem czasu, z dodanymi lub usuniętymi elementami, byłby idealny ... ale nie jestem pewien, czy to w ogóle możliwe?
database
migration
version-control
Jacob Dorman
źródło
źródło
Odpowiedzi:
Oto dwa możliwe rozwiązania, oba są w rzeczywistości rodzajowymi narzędziami kontroli wersji MySQL, ale można je dostosować do przepływu pracy:
dbv.php
To narzędzie tworzy „migracje”, które są w zasadzie skryptami SQL, na podstawie zmian wykrytych w bazie danych. Te skrypty są przechowywane w katalogu lokalnym, a zatem mogą zostać zatwierdzone do bieżącego VCS (na przykład git).
Jest używany przez interfejs WWW PHP.
DBVC
Zasadniczo podobny do poprzedniego narzędzia, jest oparty na interfejsie wiersza poleceń. Jest konfigurowany przez plik json. Główną różnicą jest to, że nie generuje automatycznie plików migracji.
Istnieje nierozwiązany problem z integracją tego z poprzednim podobnym, więc jest to coś, na co należy zwrócić uwagę.
Wtyczki Wordpress
Niektóre wtyczki, które mogą pomóc w tworzeniu powtarzalnego przepływu pracy:
źródło
Robię to na MYSQL.
Umieszcza wszystkie schematy tabel i dane we własnym pliku, dzięki czemu mogę łatwo zobaczyć, co się zmieniło.
W przeciwieństwie do większości innych rozwiązań w tym wątku, rozwiązanie to pobiera dane, co jest ważne dla CMS.
To rozwiązanie nie używa żadnych narzędzi, tylko skrypt wiersza poleceń.
edycja: Odkryłem, że mój starszy kod zawierał błąd, w którym ważna była kolejność importu. zdjęcie
--compact
flagi naprawia błąd.Starszy kod
a oto jak zaimportować
źródło