Перенос базы данных WordPress: Общее описание базы данных
Данная статья является первой из трех частей цикла «Перенос базы данных WordPress»:
1. Перенос базы данных WordPress: Общее описание базы данных;
2. Перенос базы данных WordPress: WP Migrate DB – перенос с работающего сайта на разрабатываемый;
3. Перенос базы данных WordPress: WP Migrate DB – с разрабатываемого сайта на уже работающий.
Когда речь идет о работе с проектами на базе WordPress, возможно, одной из самых трудоемких и утомительных вещей является развертывание баз данных и синхронизация их работы.
Конечно, есть некоторые вещи, которые упрощают работу. Например, использование тестовой базы, пока сайт находится в процессе разработки, для уже готовой системы используется полностью настроенная база, которая пополняется фактическими данными в процессе работы. Но нет единого решения, которое бы подходило для всех случаев. Потому тестовая база данных может до определенного момента работать нормально, а потом почему-то происходит сбой.
Или, предположим, вы унаследовали проект, старую базу данных которого нужно снести, однако при этом сохранить сами данные, с которыми далее предстоит работать. Или, вы должны перенести весь сайт или отдельное приложение с одного сервера на другой.
В таких случаях тестовая база данных вам поможет не сильно.
Нужен специальный инструмент для этих целей. Конечно, плагин WordPress Importer неплохо помогает в процессе переноса базы данных и запуска экспорта-импорта SQL. Если вы ориентируетесь в интерфейсах баз данных и уверенно чувствуете себя в работе собственно с SQL.
Делаем процесс переноса базы проще
Когда дело касается переноса базы данных WordPress, данная задача может иметь различную степень сложности для разных веб-мастеров. В зависимости о того, каким какими навыками они обладают, в какой сфере веб-разработок они специализируются.
Под этим я имею в виду:
- Те, кто чаще занимается доводкой проектов под пользователей, могут чувствовать себя намного менее уверенно в вопросах развертывания приложений и/или баз данных;
- Те, кто привык работать с прикладным уровнем, может хорошо ориентироваться в первых этапах создания сайта, но не в базах данных (или наоборот);
- Те, кто чувствует себя, как рыба в воде, во всем, что связано с базами данных, может слабо разбираться в последующих этапах разработки сайта.
Это не означает, что нет специалистов, которые досконально знают весь процесс – от и до. Но очевидно, что есть и люди, которые таким богатым багажом знаний не обладают.
Поэтому, некоторые операции в процессе переноса базы данных WordPress являются для отдельных веб-мастеров особенно сложными. Кроме того, несмотря на высокий уровень знаний по SQL, некоторые веб-мастера могут просто искать инструмент, который помог бы сделать весь процесс проще.
В этой серии статей мы собираемся рассмотреть утилиту, которая предназначена именно для этого. Но прежде чем мы перейдем непосредственно к предмету, для начала немного теории. Чтобы было понятнее то, о чем пойдет речь дальше.
Базы данных WordPress
Когда речь заходит о базах данных WordPress, то о каждой таблице, каждой строчке, о том, как правильно создавать базу можно написать отдельную серию статей.Но этот цикл не о том.
Вместо этого, мы хотим сделать две вещи:
- Мы собираемся, убедиться, что у нас есть четкое понимание того, что такое база данных, то, как мы ее себе представляем;
- А также рассмотреть каждую таблицу базы данных WordPress, чтобы понять, какие данные содержатся в них.
В конечном итоге это должно прояснить некоторые основные принципы работы для тех, кто занимается больше доводкой сайтов. Это также поможет тем, кто уделяет больше времени работе с API-приложениями WordPress, понять, какие функции соответствуют каждой таблице (что, в свою, очередь, поможет писать лучшие коды).
Что такое база данных?
Вообще-то, я думаю, что большинство читателей нашего сайта знают, что такое база данных.
Вот цитата из Википедии:
Это правильное определение, но я не думаю, что оно так уж хорошо иллюстрирует, что такое базы данных WordPress или аналогичных веб-приложений – оно слишком обобщенное. Поэтому давайте создадим собственное рабочее определение, которое мы сможем использовать на протяжении всей этой серии статей.

Я предлагаю что-то на манер:
Пожалуй, в определении, которое я привел, самой сложной является та часть, что касается взаимосвязи таблиц между собой. Мы вернемся к этому вопросу ближе к концу статьи - но сначала давайте обсудим базу данных WordPress.
Структура базы данных WordPress
Если коротко, то база данных WordPress состоит из одиннадцати таблиц (если вы не используете MultiSite, но это уже выходит за рамки данного цикла).
Каждая таблица в свою очередь имеет свой собственный набор столбцов. В них представлена различная информация, хранящаяся в таблице. Например, таблица wp_posts имеет столбец, называемый post_content – в нем представлено фактическое содержание ваших записей и страниц.
Ниже приводится описание таблиц базы данных WordPress:
- wp_users содержит список пользователей, которые были зарегистрированы при установке WordPress. Она содержит такие поля, как адрес электронной почты, пароль, отображаемое имя и так далее;
- wp_usermeta содержит информацию, относящуюся к каждому пользователю. В ней может храниться дополнительная информация о каждом пользователе;
- wp_posts, в которой хранится информация о записи. Не имеет особого значения, какого типа это запись: пост, страница или контент другого типа. Вся информация о ней - такая как название, содержание и многое другое - хранится здесь;
- wp_postmeta – в ней хранятся метаданные для каждой записи. Эта таблица позволяет собирать и извлекать больше информации о каждом посте;
- wp_comments – в ней хранятся комментарии к каждой записи (опять же, независимо от ее типа;
- wp_commentmeta – как и другие мета-таблицы она позволяет собрать больше информации о каждом комментарии, чем то, что уже сохранено в таблице wp_comments;
- wp_terms – в ней хранится информация о категориях и тегах. Так как взаимосвязи между постами, страницами, записями пользовательского типа, категориями и тегами могут быть очень сложными, для этого специально создано несколько дополнительных таблиц;
- wp_term_taxonomy - содержит описание категории или тега (или даже ссылку на нее, если вы все еще используете ссылки) из таблицы wp_terms;
- wp_term_relationship – в ней хранится информация о категории (или категориях) и/или теге (тегах), с которыми связана каждая конкретная запись;
- wp_options – в ней хранятся все настройки сайта. Как те, которые заданы при установке WordPress, так и те, которые определяются настройками API-приложений;
- wp_links – данная таблица все еще существует в базе данных WordPress, хотя сам раздел «Ссылки» уже выведен из интерфейса новейших версий системы. Если вы когда-либо использовали эту функцию в более старых версиях, то как раз в ней хранятся все ссылки.
Вот и все, что есть в базе данных WordPress. Относительно не сложно, не правда ли?
Сообщения хранятся в таблице сообщений, комментарии в таблице комментариев, пользователи в таблице пользователей и так далее. Конечно, есть некоторые тонкости (например, страницы также хранятся в таблице записей), однако это относительно несложная структура. И это хорошо.
Кроме того, помните, мы уже упоминали, что некоторые таблицы могут обращаться друг к другу? Хорошим примером этого может служить таблица комментариев и таблица записей. Поскольку комментарии относятся к конкретному посту, то строке комментария необходимо иметь информацию об ID поста, с которым он связан, времени его создания, ID комментариев, которые с ним связаны и так далее.

В любом случае, есть еще много нюансов, касающихся данной темы, которые мы не будем рассматривать в этом цикле, но, надеюсь, этого достаточно, чтобы дать вам общее представление. Если вы заинтересованы в более подробной технической информации о связях между таблицами, столбцами и многом другом, то, безусловно, вам стоит ознакомиться со статьей из Кодекса WordPress Описание базы данных.
Заключение
На данный момент мы рассмотрели все, что нам нужно, чтобы предоставить вам общую информацию о базе данных WordPress. Надеюсь, это несколько приоткроет для вас завесу тайны относительно того, что происходит в недрах системы, когда вы сохраняете информацию в WordPress. Однако теперь, когда мы рассмотрели теоретические вопросы, пришло время более предметно взглянуть на инструмент, который позволяет значительно упростить работу по переносу базы данных.