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

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

Это одна из самых базовых вещей, о которых Вы должны знать. Интернет пестрит примерами, руководствами, когда для замены чего либо в базе — советуют открыть phpMyAdmin и делать эту замену напрямую или через регулярки. Это неправильно и приводит к потере информации.

Таким же горе-способом рекомендуют менять адреса при переносе сайта в SQL бекапе базы. Часть информации просто потеряется, например, виджеты, настройки многих плагинов, и т.д.

Почему так происходит?

WordPress часть информации хранить в сериализованных массивах, а они зависят от длинны строки. В случае, если при замене напрямую или через поиск и замену в SQL файле Вы производите замену и фраза, на которую Вы меняете больше по количеству символов — этот массив больше не прочитается.

Например:

смена протокола http:// → https:// — это плюс один символ
смена домена http://site.ru → http://newsite.ru — плюс 3 символа

Как правильно сделать замену?

Есть замечательная утилита Search Replace DB, которая поможет сделать замену не нарушив эти самые сериализованные массивы. Это один из первых инструментов, который должен появится у начинающего WordPress разработчика.

Для чего мы её используем?

  • Перенос проекта с локального на рабочий сервер
  • Смена домена у сайта
  • Смена протокола на http на https
  • Смена адресов страниц
  • Смена вообще чего угодно в базе 🙂

Инструкция

Внимание! Перед этим шагом обязательно сделайте бекап!
  1. Скачиваем скрипт Search Replace DB, закачиваем все в секретную папку в корень сайта, например search-replace-secret-42
  2. Файл wp-config.php должен быть уже с правильными доступами к базе, в которой будем делать замену
  3. Открываем наш скрипт в браузере http://вашсайт.ru/search-replace-secret-42/
  4. Заполняем поля в первой строчке
    replace – что мы ищем для замены (старый домен)
    with – на что мы будем заменять (новый домен)
    в большинстве случаев этого достаточно, жмем Dry run, чтобы проверить замену
  5. Проверяем результат ниже. Если замена производится правильно, жмем Live Run и проверяем замену на нашем сайте.
  6. Обязательно! Удаляем папку со скриптом после замены.

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

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

Если у Вас настроена утилита WP-CLI, позволяющая работать с WP через командную строку, воспользуйтесь следующей командой:

wp search-replace 'olddomain.com' 'newdomain.ru'

Не будет лишним еще раз напомнить про бекапы, не забывайте. На этом все.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Понравилась статья? Поделиться с друзьями:
Добавить комментарий


1 + 1 =


;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.