Проблема с портативностью в WordPress

portability
Основная проблема, которая существует в WordPress – отсутствие переносимости (portability).

Функция экспорта/импорта в WordPress

WordPress поставляется вместе с возможностью экспорта контента в XML-формате (используя специфичный для WordPress формат WXR). Эта возможность неплохо подходит для создания быстрого бэкапа, однако в конечном счете она убивает то, что многие издатели ждут от «переносимого» приложения.

Файл WXR содержит слишком мало информации для восстановления сайта с нуля. Среди пропавших элементов можно назвать:

  • Пользовательская мета-информация (включая хэшированные пароли) – все пользователи должны быть заново созданы на целевом сайте.
  • Прикрепления – медиа-файлы могут быть скачаны и импортированы на новый сайт только в том случае, если исходный сайт по-прежнему функционирует онлайн, и к медиа-файлам есть доступ.
  • Параметры сайта – теглайн, настройки обратных ссылок и уведомлений, настройки временной зоны и т.д.

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

Разработчики даже создали разделители WXR-файлов, чтобы ускорить процесс импорта/экспорта. Все эти инструменты являются хорошими, однако они явно показывают, что у нас есть одна проблема.

Дампы базы данных

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

Я использую mysqldump для экспорта базы данных, копирую ее на целевой сервер, затем использую инструменты командной строки MySQL для повторного импорта той же самой базы данных. После этого с помощью WP-CLI я провожу замену всех поврежденных строк (т.е. измененные домены) в базе данных, что обычно выполняется вручную.

Данный процесс проходит гораздо быстрее, нежели разбиение файла WXR, поочередное импортирование его «кусков», а также ручное обновление параметров и других недостающих данных. Однако этот метод по-прежнему не является эффективным.

Некоторые сайты обладают относительно небольшими базами данных – дампы данных умещаются примерно в пару мегабайтов. На других сайтах стоят достаточно мощные системы – и дампы данных представляют собой файлы размерами по 1.5 Гб и выше. Одно дело – хранить такие объемы информации в базе данных; другое дело – переносить их.

Как это должно быть в идеале

Мне нравится, что MySQL заметно ускоряет поиск данных, помогая оптимизировать работу с отдельными объектами в базе данных. Мне не нравится то, что MySQL заметно усложняет перенос контента с одного сервера на другой.

В идеале WordPress должна быть отделенной от своего хранилища данных – позволяя, к примеру, заменить MySQL на YAML-документы для хранения данных. Возможность работы с различными системами передачи и обработки данных позволила бы администраторам сайта переводить свой контент из одного формата в другой и обратно без каких-либо потерь.

Формат WXR передает данные с потерями – он опускает некоторую важную информацию. Дампы MySQL идут без потерь, однако у них отсутствует гибкость – вы можете переносить MySQL только на MySQL, и только в том случае, если у вас есть прямой доступ к базе данных (если вы когда-либо пробовали вставить объемный дамп базы данных в phpMyAdmin, то вы понимаете, о чем я говорю).

Я хотел бы, чтобы у меня была возможность с помощью одного щелчка представить мой сайт в виде набора нескольких человеко-читаемых flat-файлов. Я хотел бы использовать те же самые flat-файлы для того, чтобы динамически воссоздавать весь сайт на другом сервере без потери данных.

Если когда-либо WordPress сможет достигнуть такого состояния, то продукт (а также контент, управляемый им) станет действительно переносимым.

Источник: eamann.com/tech

Блог про WordPress
Комментарии: 2
  1. Дуо

    Присоединяюсь. И я хотел бы :)

  2. Aster

    WordPress очень популярен среди разработчиков сайтов, поэтому я уверенна вопрос в переноса данных будет решаться

Добавить комментарий

Получать новые комментарии по электронной почте.