Экспорт только страниц и записей с помощью дампа mysql
Как экспортировать только страницы и записи используя подход mysql
база данных в базу данных? Конкретнее:
- какие таблицы нужно выбрать для дампа (предполагаю
wp-posts
иwp-post-meta
) - безопасно ли экспортировать только часть таблиц (те, что содержат данные страниц/записей), а не все
(Моя цель - синхронизировать разработку с продакшен-сайтом, и так как на продакшене добавлено много функций post festum, мой выбор - экспортировать только страницы и записи. Встроенный инструмент экспорта WordPress в сочетании с доступными плагинами импорта не дал полезного результата.)

Контент включает пользователя-автора и комментарии (и, вероятно, еще что-то). Экспорт части базы данных в качестве способа переноса данных не кажется очень надежным решением.
Базы данных относительно небольшие, и практически нет причин не экспортировать/импортировать всю БД вместо того, чтобы пытаться обойти систему.

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

Обычно это не лучшая идея. Смотрите эту диаграмму базы данных WordPress. Вам необходимо учитывать:
- записи, которые имеют категории или метки (термины), их связи, метаданные терминов и таксономии
- записи, у которых есть авторы (пользователи)
- записи, имеющие комментарии
- объекты, которые на самом деле являются записями, но вы можете не осознавать это (например, почти всё в WordPress — это записи; многие плагины хранят свои данные как записи: Contact Form 7, группы полей Advanced Custom Fields и многие другие)
- любые другие изменения, которые могли быть внесены в вашу тестовую версию и не синхронизированы с рабочим сервером (например, уверены ли вы, что в таблице options ничего не изменилось?)
В целом, у вас должна быть «рабочая» копия базы данных, а любые изменения в тестовой базе следует вносить только для проверки перед их повторением на рабочем сервере. Любые другие действия рискуют превратиться в долгий и мучительный поиск по всем данным для обеспечения их целостности. Слияние двух баз данных — это никогда не весело.
Не зная всех деталей вашей ситуации, вот несколько возможных вариантов:
- Импорт/экспорт WordPress (который, как вы сказали, вы пробовали, но неясно, почему он не сработал)
- Ручное повторное добавление нужных записей (что может быть или не быть сложным в зависимости от их количества)
- Добавление записей в новую таблицу, а затем написание скрипта для перебора записей и вызова
wp_insert_post()
для каждой из них - Создание дампа каждой базы данных с помощью mysqldump и сравнение их, чтобы определить, насколько сильно изменился рабочий сайт, и решить, можно ли просто перезаписать базу данных и вручную установить нужные настройки
Могут быть и другие решения, и наилучший вариант зависит от деталей вашей ситуации. Исходя из имеющейся информации, я бы, вероятно, склонялся к варианту со скриптом, описанному выше.
РЕДАКТИРОВАНИЕ: С момента написания этого ответа был выпущен Mergebot. Я не использовал его, поэтому не могу поручиться за него, но он выглядит многообещающе, а у автора есть репутация создателя хороших плагинов.

Вы можете использовать инструмент WordPress Import/Export для экспорта страниц и записей с тестового сайта на рабочий. Имейте в виду, что после импорта необходимо вручную обновить все URL на рабочем сайте (например, заменить dev.example.com на example.com).
Копирование всей базы данных рискованно, если на рабочем сайте есть записи о входах пользователей и заказах. Я ищу предложения по использованию mysqldump для синхронизации тестового и рабочего сайтов без изменения записей о заказах клиентов на рабочем сайте.
