Дана стаття є першою з трьох частин циклу «Перенесення бази даних 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. Сподіваюся, це кілька відкриє для вас завісу таємниці щодо того, що відбувається в надрах системи, коли ви зберігаєте інформацію в WordPress. Однак тепер, коли ми розглянули теоретичні питання, прийшов час більш предметно поглянути на інструмент, який дозволяє значно спростити роботу з перенесення бази даних.

Переклад статті «Migrating Your WordPress Database: A Database Primer» був підготовлений дружною командою проекту Сайтостроение від А до Я.