Правильная миграция домена в WordPress

Проблема назрела, я очень часто читаю блоги про  о WordPress и смотрю смотрю тематические сообщества где часто вижу вот такой sql запрос:

UPDATE wp_options SET option_value = replace(option_value, 'old-site.com', 'новыйдомен.ру') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET guid = replace(guid, 'old-site.com','new-site.com');
UPDATE wp_posts SET post_content = replace(post_content, 'old-site.com', 'new-site.com');

по задумке он должен сделать одну вещь, заменить везде в базе старый домен новым и этот метод работает, но есть в нем одна фатальная ошибка, в WordPress часть опций хранятся в виде  сериализованного массива в таблице wp_options и запрос выше никак не учитывает этого факта.

Это грозит прежде всего тем что часть настроек WordPress не перенесется, или часть функций начнут работать непредсказуемо, и самое интересное что якобы причин беспокоиться нет, всё делалось по мануалу.

Теперь внимание

Правильный способ  заменить имя домена в базе WordPress это утилита Search Replace DB, в работе с ней все просто, пользователи Windows будут  в восторге,  просто загружаем скрипт в корень сайта и отрыть несколько раз нажать кнопку Submit и Continue  после чего удалить cкрипт.

1) Когда мы загрузили скрипт в корень WordPress сайта перейдите по url htp://you-site.com/searchreplacedb2.php

2015-01-03 22-55-45 Скриншот экрана

Здесь скрипт обнаружил файл wp-config.php  и просит разрешения взять все данные для подключения к mysql из него, можно нажать Submit.

2) Здесь мы видим все эти данные, при желании здесь можно подключиться к другой базе данных и работать дальше с ней

2015-01-03 22-56-24 Скриншот экрана

просто нажимаем SubmitDB detalis.

3) Выбираем все таблицы таблицы в которых нужно повести замену

2015-01-03 22-57-28 Скриншот экрана

4) Последний шаг вписываем строку для поиска и замены

2015-01-03 22-58-04 Скриншот экрана

Search for (case sensitive string): — строка  по которой производится поиск;

Replace with: — строка которой нужно замени;

Иными словами сначала вписываем старый домен потом ниже новый и нажимаем Submit Search string.

После чего обязательно удалите скрипт searchreplacedb2.php так как его могут использовать для что бы прочесть ваш wp-config.php и взломать ваш сайт .

Пожалуйста хватит уже использовать SQL запросы и портить базы ваших сайтов, пользуйтесь, специально созданными для этих целей инструментами.

 

 

2 Комментариев

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *