Какой лучший рабочий процесс для миграции базы данных?

11 дек. 2014 г., 11:16:43
Просмотры: 226
Голосов: 1

Когда я работаю с существующим сайтом 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 эту задачу лучше?

0
Все ответы на вопрос 2
0

Я использую это для поиска и замены в базах данных - https://interconnectit.com/products/search-and-replace-for-wordpress-databases/

Просто перемещаю файлы через FTP, экспортирую и импортирую базу данных, а затем запускаю скрипт для поиска старого URL и замены его на новый URL. После этого я пересохраняю постоянные ссылки, и всё готово. Я переносил WordPress тысячи раз с помощью этого метода.

У меня есть старая версия скрипта, которая состоит всего из одного файла. Мне не очень нравится новая версия - она немного медленнее и сделана более "защищённой от дурака", что мне на самом деле не нравится.

11 дек. 2014 г. 11:32:34
0

wp-cli имеет встроенную функцию для этого. Если у вас установлен wp-cli, вы можете выполнить в командной строке:

wp search-replace 'http://oldurl.com' 'http://newurl.localhost'

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

Вы можете создать алиасы в вашем .bash_profile для выполнения серии команд wp-cli, таких как создание базы данных, сброс базы данных, импорт базы данных, поиск и замена в базе данных и т.д. В итоге у вас может быть один алиас, который вы запускаете в командной строке, и он выполняет всю работу по импорту новой базы данных на ваш сайт.

10 февр. 2016 г. 11:48:41