Jeden z naszych użytkowników korzystał z WP Staging Pro razem z WPML (wraz z modułem Translation Management) na kilku stronach. Na jednej z nich w szczególności przesłanie witryny staging na witrynę produkcyjną za pomocą WP Staging Pro od razu powodowało, że tabela wp_options zapełniała się wpisami z wp_name równym ’wpml_translation_services’. Gdy tylko były usuwane, nie powstawały kolejne wpisy… aż do następnego push z staging na produkcję. Doszliśmy do tego, że ten wpis pochodzi z modułu WPML Translation Management. Jeśli zainstalowany jest tylko WP Staging Pro lub tylko WPML Translation Management, ten wpis nie jest tworzony, ale gdy zainstalowane są oba i zmiany są przesyłane ze staging do produkcji, problem ponownie pojawiał się na tej konkretnej witrynie. Wsparcie WPML przekazało nam rozwiązanie tego problemu, które chcemy opublikować tutaj dla każdego, kto napotka ten sam błąd: Wygląda na to, że problem wystąpił, ponieważ brakuje indeksowania w tabeli wp_options. Indeks tabeli options jest bardzo specyficzny i kluczowy, a każda wtyczka lub motyw może powodować problemy, jeśli go brakuje. Wykonaj następujące kroki po wykonaniu pełnej kopii zapasowej witryny:
- Zaloguj się do serwera bazy danych za pomocą PHPMyAdmin lub podobnego narzędzia.
- Wybierz bazę danych i najpierw wykonaj następujące zapytania:
DELETE FROM `wp_options` WHERE `option_name` = 'wpml_dependencies:needs_validation';DELETE FROM `wp_options` WHERE `option_name` = 'jetpack_callables_sync_checksum';DELETE FROM `wp_options` WHERE `option_name` = 'gf_upgrade_lock';DELETE FROM `wp_options` WHERE `option_name` = 'wpstg_license_key';DELETE FROM `wp_options` WHERE `option_name` = 'wpstg_license_status';DELETE FROM `wp_options` WHERE `option_name` = 'wpstg_settings';DELETE FROM `wp_options` WHERE `option_name` = 'fs_accounts';DELETE FROM `wp_options` WHERE `option_name` = 'jetpack_plugin_api_action_links';DELETE FROM `wp_options` WHERE `option_name` = 'jpsq_sync_checkout';DELETE FROM `wp_options` WHERE `option_name` = 'stats_cache'; - Następnie wykonaj następujące zapytanie, aby zindeksować tabelę options:
ALTER TABLE `wp_options` ADD UNIQUE `option_name` (`option_name`); - Utwórz nową witrynę staging, ponieważ istnieje duże prawdopodobieństwo, że ten sam błąd występuje również w istniejącej witrynie staging.
- Wprowadź zmiany w nowej witrynie staging i prześlij je na witrynę produkcyjną.
- Następnie sprawdź, czy otrzymujesz wiele wpisów dla wpml_translation_services, czy nie.