Jeśli masz pewność, że żadne z pól, które mają zostać zaktualizowane, nie są serializowane, powyższe rozwiązania będą działać dobrze.
Jeśli jednak którekolwiek z pól wymagających aktualizacji zawiera dane zserializowane, zapytanie SQL lub proste wyszukiwanie / zamiana w pliku zrzutu spowoduje przerwanie serializacji (chyba że zastąpiony ciąg ma dokładnie taką samą liczbę znaków jak szukany ciąg).
Dla pewności pole „zserializowane” wygląda następująco:
a:1:{s:13:"administrator";b:1;}
Liczba znaków w odpowiednich danych jest kodowana jako część danych.
Serializacja to sposób na konwersję „obiektów” na format łatwo przechowywany w bazie danych lub na łatwy transport danych obiektów między różnymi językami.
Oto wyjaśnienie różnych metod serializacji danych obiektowych i dlaczego warto to zrobić, a oto post skoncentrowany na WordPress: Dane szeregowe, co to znaczy i dlaczego jest tak ważny? prostym językiem.
Byłoby niesamowite, gdyby MySQL miał wbudowane narzędzie do automatycznej obsługi danych serializowanych, ale tak nie jest, a ponieważ istnieją różne formaty serializacji, nie miałoby to nawet sensu.
wp-cli
Niektóre z powyższych odpowiedzi wydawały się specyficzne dla baz danych WordPress, które serializują większość jego danych. WordPress oferuje narzędzie linii poleceń, WP szukać zamień , że ma uchwyt serializacji.
Podstawowym poleceniem byłoby:
wp search-replace 'an-old-string' 'a-new-string' --dry-run
WordPress podkreśla jednak, że guid
nigdy nie należy go zmieniać , dlatego zaleca pominięcie tej kolumny.
Sugeruje również, że często będziesz chciał pominąć wp_users
stół.
Oto jak by to wyglądało:
wp search-replace 'https://old-domain.com' 'https://shiney-new-domain.com' --skip-columns=guid --skip-tables=wp_users --dry-run
Uwaga: dodałem --dry-run
flagę, aby kopiowanie-wklejanie nie zniszczyło automatycznie bazy danych nikogo. Po upewnieniu się, że skrypt robi to, co chcesz, uruchom go ponownie bez tej flagi.
Wtyczki
Jeśli korzystasz z WordPress, istnieje również wiele bezpłatnych i komercyjnych wtyczek, które oferują interfejs GUI, aby zrobić to samo, wyposażone w wiele dodatkowych funkcji.
Interconnect / it skrypt php
Interconnect / oferuje skrypt php do obsługi danych zserializowanych: narzędzie Bezpieczne wyszukiwanie i zamiana . Został stworzony do użytku na stronach WordPress, ale wygląda na to, że można go użyć w dowolnej bazie danych zserializowanej przez PHP.
Wiele firm, w tym sam WordPress, poleca to narzędzie. Instrukcje tutaj, około 3/4 w dół strony.