Правильная замена в базе данных с помощью Search Replace DB

Если вы хоть раз разворачивали сайт с локалки в прод, или просто меняли домен, то вы непременно сталкивались с заменой данных в phpMyAdmin. Кто-то менял данные напрямую в phpMyAdmin, кто-то производил замену в Notepad++. Но у всех этих способов есть один большой недостаток, а именно поломка сериализованных массивов.

Сериализация — процесс конвертирования сложной структуры языка программирования в строку, для компактной передачи данных.

Окей, давайте проще, в жизни бывает такое, когда информацию хранят в таком виде: s:7:’Пылесос’, так с ней быстрее можно работать, но проблема в том, что при грубой замене Пылесоса на Утюг, информация о количестве символов не меняется, именно тут нам нужны такие инструменты как Search Replace DB.

WordPress и его плагины любят хранить массивы настроек в таком типе данных, в этом массиве могут содержаться полные пути до изображений. И при грубой замене домена в путях, отвалятся все настройки.

Search Replace DB

Когда?

  • Выливаете сайт в прод
  • Меняете домен
  • Меняете протокол с http на https
  • Меняете адреса страниц
  • Меняете вообще все что угодно

Как?

  1. Делаете бекап все базы. Обязательно. Я не шучу!
  2. Качаете скрипт с гитхаба — https://github.com/interconnectit/Search-Replace-DB
  3. Создаем в корне сайта какую-нибудь секретную папку (например: IAmSecretFolder), о котором будете знать только вы, после всех работ вы ее должны удалить.
  4. Заливаем в нее скрипт, который вы скачали с гитхаба.
  5. В файле wp-config.php прописываем все данные от базы.
  6. Открываем наш скрипт в браузере — http://вашсайт.ru/IAmSecretFolder/
  7. Заполняем поля:
    replace — что меняем (например: старыйдомен.ru)
    with — на что меняем (например: новыйдомен.ru)
  8. Жмем Dry Run, это тестовый запуск, чтобы вы могли проверить, что все замены сработали корректно.
  9. Если все ОК, то жмем Live Run.
  10. Супер, теперь удалите вашу секретную папку.

Также вы можете использовать регулярные выражения для более гибкой замены.

А еще скрипт может работать через WP-CLI, подробная документация по командам есть на гитхабе проекта.

Вот и все, надеюсь было полезно. Если остались вопросы, то пишите их в комментарии.

Добавить комментарий

Вы можете использовать следующие теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>