В данном статье речь пойдёт о том, как синхронизировать базы данных WordPress. А так же о том, какие таблицы в базе наиболее важные и как с ними работать.
Структура базы данных WordPress
Прежде чем приступить к синхронизации нужно разобраться, что синхронизировать. База данных Вордпресс состоит из множества таблиц, в которых хранятся данные о пользователях, статьях, категориях, тегах, плагинах, комментариях, системных настройках и многое другое.
По большому счёту досконально разбираться во всех таблицах необязательно. Достаточно знать, в каких таблицах находится информация о статьях, комментариях и так далее. Именно эти таблицы имеют ключевое значение при синхронизации.
Итак, рассмотрим ключевые таблицы в базе данных WordPress.
wp_options – содержит все настройки сайта;
wp_posts – все статьи и записи на сайте;
wp_postmeta – вспомогательные данные о статьях и записях на сайте;
wp_comments – комментарии;
wp_commentmeta – вспомогательная информация о комментариях;
wp_term_relationships – связи статей и записей с категориями и тегами;
wp_terms – связи категорий (рубрик) со ссылками;
wp_term_taxonomy – связи категорий, тегов, ссылок;
wp_usermeta – информация обо всех зарегистрированных пользователях;
wp_users – информация об администраторе.
Основные таблицы в БД WordPress
Многие другие таблицы в базе данных создаются всевозможными плагинами, виджетами, хостингом и прочими такими инструментами. В основном в этих таблицах собрана системная информация, её можно использовать с пользой. Так, посмотрев внимательно эти таблицы, вы можете узнать по какому ключевому запросу пришёл посетитель, на какую страницу, был ли это первый визит или повторный, и даже с какого браузера и операционной системы.
Аналитика в базе данных
Вот теперь, когда общее представление о базе данных WordPress у вас сложилось, можно приступать к цели нашего урока – синхронизации баз данных.
Подготовка к процессу синхронизации
Прежде чем приступить к работе с базой данных, — обязательно сделайте резервную копию. Так как если вы сделаете, что-то не так. То сможете всё восстановить из копии.
Также, с целью отработки процесса, рекомендую для начала установить локальный сервер Денвер и потренироваться на нём.
Так, вы и процесс поймёте, и сможете создать нужную базу данных на своём компьютере и перенести на хостинг уже готовую БД.
Самое главное не забудьте про резервную копию.
Сравнение баз данных в phpMyAdmin
Этот шаг необязательный, но лучше, если вы будете знать, как, подручными средствами, сравнить базы данных. Меня эти знания частенько выручают.
Использовать для этого будем утилиту phpMyAdmin, которая доступна и на хостинге и на локальном сервере.
В качестве сравнения будем использовать базу данных на локальном сервере, которую я использовал в работе над новым шаблоном. И базу данных, которая используется у меня на моём блоге.
Для сравнения возьмём одну цифру – количество статей. Так как для таких сайтов, как мой, – это самое ценное. Ну и комментарии, конечно. К тому же эти цифры всегда у вас на виду.
Анализируем тестовый сайт и базу данных:
Для начала посмотрим на количество статей. Сделать это можно в административной панели Вордпресс. Достаточно открыть консоль.
Показатели локальной базы
Как видно, на скриншоте, статей на тестовом сайте – 136.
После обновления темы оформления, я успел написать ещё пару статей. И сейчас их уже 138.
Показатели реальной базы
Количество статей должно соответствовать количеству записей в таблице wp_posts. Но, если открыть эту таблицу, то записей вы увидите гораздо больше.
Общее количество записей в таблице
Как видите на скриншоте – всего записей 2,245. И среди них и статьи и отдельные записи. А ещё это куча черновиков и прочих записей о картинках и так далее.
Поэтому сразу определить количество статей нереально. Для этого потребуется сделать небольшой запрос с параметрами сортировки.
Открываете базу данных – таблицу wp_posts – переходите на закладку SQL – вводите запрос:
SELECT * FROM `wp_posts` WHERE `post_status` = 'publish' AND `post_type` = 'post'
Этот запрос говорить о том, что в таблице wp_posts нужно выбрать все записи (*), где статус – опубликовано (publish) и это статья (post).
Запрос на сортировку
В итоге получаем 136 записей. Вот теперь эта цифра соответствует количеству статей.
Сортитовка по статьям
Точно так же сверяется и другая база данных. В моём случае – реальная база с моего блога.
Эти знания помогут вам не потерять ничего важного. И проверить после синхронизации, всё ли прошло успешно.
В качестве досадного примера расскажу небольшую историю. Один мой знакомый, однажды переезжал с одного хостинга на другой. Делал всё по инструкции, техподдержка ему помогла. Но, через какое-то время он заметил, что на его сайте не хватает двух статей. Когда он попросил меня разобраться, в чём может быть проблема, я провёл сверку, и выяснилось, что в новой базе нет двух записей, которые есть в старой базе данных. Скорей всего, когда он переносил базу данных, то что-то сделал не так и потерял эти две статьи. В результате пришлось немного поколдовать и вернуть эти две статьи на их законное место.
Вот почему важно знать, как провести сверку. И убедиться, что после синхронизации, все ваши записи успешно перенесены из одной базы в другую.
Синхронизация баз данных WordPress
Все действия будем делать на локальном сервере. А после готовую базу данных можно импортировать на хостинг.
Шаг 1. Создание двух пустых баз данных
Если возникает вопрос почему две базы, то объясняю, — это нужно для того, чтобы не трогать рабочие базы данных и показать пример с чистого листа.
Первым делом запускаете Денвер и в браузере набираете localhost/tools/, а далее жмёте на ссылке phpmyadmin.
Запуск phpMyAdmin
Далее переходим в раздел «Базы данных» и создаём две базы данных. Для этого нужно ввести название и нажать на кнопку «Создать».
Создание новой базы данных
Шаг 2. Импортируем данные в базу
Итак, я сделал резервные копии баз данных. Одну с тестового сайта, другую с моего блога в интернете. Они понадобятся для импорта содержимого во вновь созданные базы. А далее будут страховкой.
У вас должно быть тоже две базы, которые вы будете синхронизировать.
Теперь нужно импортировать данные из резервных копий в новые базы данных. Для этого выбираете новую базу – откройте закладку «Импорт» — выбираете «файл резервной копии» — нажимаете кнопку «Ок».
Импорт базы данных
Шаг 3. Синхронизация баз данных
Вообще, есть возможность просто копировать нужные таблицы из одной базы в другую. Но мы рассмотрим непосредственно процесс синхронизации. Как полной так и частичной (в виде отдельных таблиц).
Для этого нужно перейти на главную страницу phpMyAdmin и выбрать раздел «Синхронизировать».
Начало синхронизации
Теперь в качестве источника определяем базу данных с блога в интернете (она более свежая), а в качестве целевой базы – базу с тестового сайта. Наша задача скопировать новые статьи, комментарии и теги в базу данных тестового сайта.
Выбор баз для синхронизации
После того как пройдёт сравнение. На выбор будет предложено синхронизировать отдельные таблицы, в которых есть изменения, или провести полную синхронизацию.
Результат сравнения баз данных
Если вы хотите синхронизировать отдельные таблицы, то необходимо нажать на буквы S или D. Эти буковки станут серыми, а в окошке ниже вы увидите добавленные таблицы на синхронизацию. После чего вы можете синхронизировать эти таблицы, нажав на кнопку «Применить выбранные изменения».
В нашем случае подходит именно этот способ, так как нам нужно синхронизировать только статьи, комментарии и метаданные.
Для синхронизации баз данных полностью, ничего отмечать не нужно. Достаточно нажать на кнопку «Синхронизировать базы данных».
Вот, и всё. На этом процесс синхронизации окончен. Можно проверять результат. Для наглядного примера, я сменил базу данных на локальном сайте. Если кто забыл, делается это в файле wp-config.php. И теперь можно сравнить количество статей, записей и комментариев. Правда, комментариев на блоге стало немного больше, пока я писал статью.
Статистика по тестовому блогу:
Итоги по локальной базе
Статистика по рабочему блогу:
Итоги по реальной базе
Ну и напоследок напомню, что синхронизировать базу данных это ещё половина дела. К базе данных должны прилагаться и файлы, задействованные в работе сайта. К примеру, если не скопировать скриншоты, сопровождающие статью, то статья будет без них с пустыми местами.
А теперь советую посмотреть видеоурок, в котором весь процесс синхронизации баз данных я показываю шаг за шагом.
Источник