Какой лучший рабочий процесс для миграции базы данных?
Когда я работаю с существующим сайтом WordPress, я обычно копирую весь сайт и работаю с ним локально. В течение многих лет я использовал скрипт, подобный приведенному ниже, после импорта базы данных локально.
-- Обновляем URL сайта в настройках WordPress
UPDATE wp_options SET option_value = replace(option_value, 'http://clientsite.co.uk', 'http://local.wordpressdev') WHERE option_name = 'home' OR option_name = 'siteurl';
-- Заменяем старые URL в guid записей
UPDATE wp_posts SET guid = REPLACE (guid, 'http://clientsite.co.uk', 'http://local.wordpressdev');
-- Обновляем метаданные записей
UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://clientsite.co.uk', 'http://local.wordpressdev');
-- Заменяем URL в содержимом записей
UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://clientsite.co.uk', 'http://local.wordpressdev');
Я видел рекомендации никогда не изменять GUID записей, но приведенный выше метод всегда работал для меня и, насколько я знаю, никогда не вызывал проблем.
Мой вопрос: остается ли этот метод миграции актуальным для WordPress 4? Также, делают ли плагины типа 'Search & Replace' или инструменты вроде WP-CLI
эту задачу лучше?

Я использую это для поиска и замены в базах данных - https://interconnectit.com/products/search-and-replace-for-wordpress-databases/
Просто перемещаю файлы через FTP, экспортирую и импортирую базу данных, а затем запускаю скрипт для поиска старого URL и замены его на новый URL. После этого я пересохраняю постоянные ссылки, и всё готово. Я переносил WordPress тысячи раз с помощью этого метода.
У меня есть старая версия скрипта, которая состоит всего из одного файла. Мне не очень нравится новая версия - она немного медленнее и сделана более "защищённой от дурака", что мне на самом деле не нравится.

wp-cli имеет встроенную функцию для этого. Если у вас установлен wp-cli, вы можете выполнить в командной строке:
wp search-replace 'http://oldurl.com' 'http://newurl.localhost'
или любые другие URL, которые вы используете в локальной среде, и это обновит базу данных локального сайта, учитывая сериализованные массивы (чего не делает автор исходного вопроса).
Вы можете создать алиасы в вашем .bash_profile для выполнения серии команд wp-cli, таких как создание базы данных, сброс базы данных, импорт базы данных, поиск и замена в базе данных и т.д. В итоге у вас может быть один алиас, который вы запускаете в командной строке, и он выполняет всю работу по импорту новой базы данных на ваш сайт.
