Jak mogę aktualizować witrynę, na kopii programistycznej, a następnie przenosić aktualizacje z powrotem bez zastępowania ewoluującej bazy danych na żywo?

20

Próbowałem być tak opisowy w tytule, jak to możliwe, i wiem, że zadawano to pytanie w różnych formach, ale nie mogłem znaleźć dobrej odpowiedzi na to pytanie i mam wyobrazić sobie, że nikt nie rozwiązał tego problemu.

To proste, gdy witryna WP jest już aktywna, jeśli nie jest statyczna, aktualizuje bazę danych, dodając nowe posty, nowe zamówienia woocommerce, nowe konta użytkowników itp. ”

Jeśli chcę wprowadzić kilka poważnych zmian i aktualizacji w witrynie, najprostszym i najłatwiejszym sposobem jest zrobienie kopii albo w instalacji lokalnej, albo w innej domenie programistycznej i dokonanie tam wszystkich zmian. Po wprowadzeniu wszystkich zmian chcę je skopiować z powrotem na stronę na żywo.

Jeśli zmiany dotyczą tylko plików, takich jak motyw i css, jest to nieco łatwe. Jeśli jednak zmiany dotyczą zmian w bazie danych, takich jak dodawanie nowych wtyczek i dodawanie treści łączących / odnoszących się do tych wtyczek, to nie mogę już po prostu skopiować strony z powrotem, ponieważ zastąpi ona wszelkie nowe zmiany dodane do live baza danych witryny. wszystkie nowe posty, nowe zamówienia, przesyłanie nowych zdjęć zostaną usunięte.

Teraz wiem, że różne scenariusze przypadków mają różne rozwiązania, ale czy nie istnieje metoda, która rozwiązuje wszystkie przypadki?

Na przykład, jeśli jedynymi zmianami, które zostały wprowadzone w aktywnej witrynie, były nowe posty, to mogę eksportować i importować posty do witryny deweloperskiej, a następnie przenieść całą witrynę. To samo z niektórymi innymi przedmiotami, ale nie z każdym rodzajem przedmiotu. Innym problemem jest to, że funkcja eksportu i importu w wordpressie jest fatalna. Jest to tak szczątkowy element, że masz bardzo mało opcji wyboru i eksportowania tylko określonych elementów. Prawdopodobnie próbowałem już każdej „zaawansowanej wtyczki importu / eksportu” i nic jeszcze nie rozwiązało tego problemu.

W innym wątku ktoś wskazał tę wtyczkę, aby po prostu zainstalować i pracować nad motywem w witrynie na żywo, podczas gdy zwykli użytkownicy nadal widzą istniejący motyw, ale to nadal nie rozwiązuje wszystkich rodzajów zmian. ponieważ jeśli chcesz wprowadzić zmiany w treści, powiedzmy w stopce lub menu nawigacyjnym, są to rzeczy, które nadal będą odzwierciedlać istniejący widoczny motyw / witrynę i mogą wyglądać dobrze na nowym motywie testowym, ale nie na żywo.

Czy nie ma możliwości rozwinięcia „oddziału” witryny w tej samej witrynie / bazie danych, a następnie zmiany? lub czy nie ma sposobu, aby rozwijać się na stronie deweloperskiej, ale następnie faktycznie łączyć bazy danych w nieniszczący sposób? Jeśli wiesz, na które komponenty i rzeczy miałeś wpływ, czy nie byłoby na to sposobu? czy musisz być mistrzem MySQL, aby spróbować czegoś takiego.

Nie mogę być jedynym, który ma tę zagadkę. Nie mogę sobie wyobrazić, że nie ma rozwiązania tego problemu. Jak można to zrobić?

Z góry dziękuję.

James
źródło
3
Każdy ma ten problem i nie ma prostego rozwiązania, trzymaj kod w kontroli wersji, zrzucaj sql często na serwer pomostowy, twórz blokady konserwacyjne podczas migracji (5-10min).
Wyck
Nie zgodziłbym się. Wtyczka RAMP CrowdFavorite jest prostym rozwiązaniem dla tych, którzy muszą przygotować i wdrożyć zawartość. Nazywanie tego „prostym rozwiązaniem” może być trudne, ale jest dobre i każdy programista powinien mieć możliwość skonfigurowania go (wymaga SSH i zdalnego dostępu do MySQL itp.)
jb510
Czy ktoś próbował sitepush ? Nie mam nic przeciwko zapłaceniu 250 USD za Rampę, jeśli jest to lepsze rozwiązanie, ale trudno z zewnątrz zobaczyć, jak dobrze te systemy działają bez pełnego wdrożenia i testowania.
James
Nie użyłem sitepush. Wygląda na to, że wypycha kompletne bazy danych (jak Migrate WP DB Pro). Jest dobry do wdrażania witryny statycznej, ale nie działa dynamicznie na żywo (np. Pojawiają się nowe posty / komentarze). RAMP faktycznie zarządza różnicą między bazami danych i scaleniami, a nie zastępuje aktywnej bazy danych.
jb510
Możesz skorzystać z DBV PHP , projektu open source, poddając swoją DB kontroli wersji. Ma nawet interfejs użytkownika ułatwiający zarządzanie. Inną opcją byłoby przejście na np. Laravel, który ma narzędzie migracji wbudowane w aplikację CLI.
kaiser

Odpowiedzi:

2

Naprawdę nie jest to łatwy sposób na robienie tego, co chcesz zrobić, ale chciałbym zrobić migawkę swojej witryny, wprowadzić zmiany w yoru i jeśli coś zostanie przywrócone, spróbuj ponownie. Być może nie działa przez godzinę, ale niedawno to zrobiłem, kiedy w jakiś sposób zamurowałem witrynę, nad którą pracowałem. To może nie być „właściwy” sposób rozwiązania problemu, ale dla mnie to działa. Powodzenia.

user57081
źródło
Jak to możliwe, że zespół WP nie pomyślał o tym profesjonalnie? jest 2018 !!
asael2