Какие таблицы в базе данных Wordpress необходимо отредактировать для перехода на новый URL?
Я видел много вопросов, связанных с миграцией базы данных, но ни один из них четко не гласил: при редактировании базы данных какую из таблиц мне действительно нужно редактировать?
По привычке я редактирую всю базу данных MySQL, и обычно это получается. (Однако иногда это может испортить URL-адрес, оставленный, например, в комментариях пользователя.) Однако было бы хорошо знать, какие именно таблицы мне действительно нужно отредактировать, чтобы правильно выполнить миграцию.
РЕДАКТИРОВАТЬ: Я уже понимаю, как работает миграция и какой инструмент использовать, и я прочитал запись кодекса о миграции. У меня нет особых проблем с миграцией.
Это действительно вопрос передового опыта.
То, что я ищу, - это точный список таблиц, которые я могу исключить из поиска и замены. Например, я знаю, что основная информация об URL-адресе находится в wp_options, я знаю, что (некоторые) пути к изображениям хранятся в wp_postmeta. По сути, я хочу исключить все таблицы, которые возможно, сохраняя при этом виджеты, изображения, настройки и т. Д. Сайта.
2 ответа
Единственные ссылки, которые нужно изменить, находятся в wp_options
Таблица. Одним из них является home
URL, а другой является siteurl
, Это позволит вам войти в администратор и просмотреть интерфейс. Однако вам все равно придется обновить свои постоянные ссылки и переписать правила с помощью администратора.
Однако я все же предложил бы автоматизированное решение. Я использую этот инструмент, чтобы найти и заменить ссылки на базу данных. Он специально создан для WordPress, но он будет работать для любой базы данных. Это также позволит вам выбрать таблицы для обновления и будет работать с сериализованными строками, чтобы вы могли избежать ошибок в разделе комментариев.
Просто поместите файл в корень вашей установки WordPress и запустите подсказки. Обязательно отмените выбор wp_comments
а также wp_commentmeta
столы. Кроме того, убедитесь, что вы удалили файл на производстве, поскольку он представляет потенциальную угрозу безопасности.
ОБНОВЛЕНИЕ НА ОСНОВЕ КОММЕНТАРИЙ
Помимо двух мест выше, в базе данных есть несколько мест, где хранятся URL-адреса. Большинство плагинов будут хранить свои параметры в wp_options
Таблица. Как правило, плагины также сериализуют данные, чтобы избежать тонны запросов. Однако нельзя просто изменить URL-адрес в сериализованных данных, поскольку в сериализованной строке есть ссылки на длину. Поэтому, если ваш текущий URL имеет длину 15 символов, а новый - 20, вам необходимо обновить URL и длину строки. Если вы этого не сделаете, PHP просто проигнорирует значение. Я считаю, что это мера безопасности, чтобы избежать внедрения кода.
Для ресурсов в разделе СМИ URL-адреса хранятся в wp_posts
под типом должности attachment
, Если вы жестко кодируете абсолютные ссылки в своих сообщениях, возможно, вам также потребуется их проанализировать (в этом случае вы, вероятно, можете просто проанализировать всю таблицу). Если вы используете какой-либо плагин для настраиваемого поля или делаете что-то с мета-публикацией для URL, вы также захотите пройти wp_postmeta
,
Еще одна вещь, которую стоит упомянуть, это то, что некоторые плагины будут добавлять свои собственные таблицы базы данных. Это очевидно для каждого конкретного случая, но хорошее практическое правило - попытаться выполнить запрос "%http%" в любых строковых столбцах, чтобы проверить, есть ли жестко закодированные URL-адреса. Вот запрос, который я буду использовать:
SELECT * FROM `table` WHERE `column` LIKE '%http%'
Загрузите файл по следующей ссылке http://interconnectit.com/products/search-and-replace-for-wordpress-databases/. Поместите его в корневую папку и получите доступ к файлу, следуйте инструкциям и замените URL-адреса.
Я использую его довольно долго без проблем.
Надеюсь, поможет!
Спасибо