Статьи

Как синхронизировать базы данных WordPress Live и разработки

синхронизация базы данных

Эта статья является частью серии, созданной в сотрудничестве с SiteGround . Спасибо за поддержку партнеров, которые делают возможным использование SitePoint.

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

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

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

Синхронизация Snags

Односторонняя репликация базы данных WordPress может оказаться более сложной, чем вы ожидаете. Есть веские причины, по которым немногие кодеры живут в этом мире грез развития …

Различия в данных

WordPress хранит различные параметры конфигурации в своей базе данных. Это включает доменное имя и пути, которые используются в сообщениях и ссылках на ресурсы. Импорт этой информации в локальную базу данных (возможно, размещенную по адресу http: // localhost /) приведет к нежелательным последствиям. Может показаться, что это сработало, но URL-адреса с изображениями и ссылками могли вернуть вас на действующий сервер.

Чтобы добавить к сложностям, WordPress сериализует некоторые данные. Может быть трудно разобрать и изменить эти значения.

Несколько установок

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

Базы данных могут быть большими

SitePoint работает на WordPress и содержит много тысяч статей, черновиков и ревизий. Даже если бы была реализована быстрая инкрементная синхронизация, вам вряд ли понадобятся или понадобятся многочисленные мегабайты почтовых данных.

Это не просто базы данных

WordPress хранит загруженные изображения и другие носители в локальной файловой системе. Они должны быть загружены, и ссылки на базу данных должны быть соответственно обновлены.

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

Это опасно!

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

Абсолютно.

Какое бы решение вы ни выбрали, убедитесь, что у вас есть регулярные резервные копии файлов и баз данных с ваших живых серверов и серверов разработки. Представь, что теряешь все. Несколько минут, потраченных на запуск mysqldump меньше хлопот, чем много дней, потраченных на переписывание потерянного контента!

Возможна ли синхронизация?

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

В зависимости от ваших обстоятельств может подойти одна или несколько из следующих опций …

WP Migrate DB Pro

Пожалуй, самый известный и простой выбор — плагин WP Migrate DB Pro WordPress от Delicious Brains . Коммерческий продукт имеет надстройку Media Files и возможности для нескольких сайтов, но доступна и бесплатная версия .

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

WP Sync DB

WP Sync DB — это ветвь с открытым исходным кодом WP Migrate DB.

VersionPress

VersionPress — это Git-плагин для управления версиями для WordPress, который может управлять слиянием баз данных. Продукт находится в разработке, но кажется многообещающим.

WPSiteSync для контента

Предлагая бесплатные и коммерческие выпуски , WPSiteSync позволяет в реальном времени синхронизировать страницы, записи и другие данные.

Синхронизация базы данных

Database Sync — бесплатный плагин WordPress для синхронизации только с базой данных. Некоторое время он не обновлялся и не совместим с многосайтовыми установками, но может быть достаточно для некоторых разработчиков.

WordPress Importer

Если вы предпочитаете более безопасный и более ручной процесс, WordPress Importer экспортирует записи, страницы, комментарии, категории, теги, авторов и другие данные в файл XML, который можно импортировать в другую установку. Это также хороший вариант, если вы создаете живой сайт из постов в системе разработки.

SyncDB

SyncDB — это скрипт bash, который синхронизирует локальные и удаленные базы данных WordPress.

WP Staging

Плагин WordPress WP Staging способен клонировать данные и файлы из оперативной среды на серверы разработки или промежуточные серверы.

WordPress GitHub Sync

Плагин WordPress GitHub Sync позволяет синхронизировать контент, позволяет синхронизировать контент из репозитория GitHub или сайта, созданного Jekyll. Это может быть интересным вариантом для групп, которым требуется совместная работа по редактированию контента и рабочие процессы утверждения запросов.

PushLive

Плагин PushLive дублирует размещение на живых сайтах одним щелчком мыши. Multi-сайт WordPress установки поддерживаются.

WP Дилижанс

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

Инструменты синхронизации MySQL

Большинство хороших инструментов управления базами данных MySQL предлагают средства импорта, экспорта и / или синхронизации баз данных. Бесплатный MySQL Workbench или это хорошее место для начала. Более продвинутые инструменты, такие как SymmetricDS, предоставляют такие функции, как преобразование данных и фильтрация. Наконец, вы могли бы рассмотреть такие варианты, как репликация MySQL, для автоматической репликации данных из оперативной главной базы данных в подчиненные разработки.

Создайте свое собственное решение

Единственное идеальное решение — это то, которое вы строите для собственных нужд. Следующие инструменты могут помочь:

  • mysqldump — оригинальная схема MySQL и утилита резервного копирования данных
  • mysqlpump — новая утилита резервного копирования MySQL, представленная в v5.7.8, которая должна предлагать более быструю параллельную обработку и сжатие. Обратите внимание, что он не имеет обратной совместимости с более ранними версиями базы данных.
  • rsync — пошаговая передача файлов
  • Варианты развертывания Git , такие как WP Pusher , Beanstalk и DeployBot
  • исполнители задач, такие как Gulp.js или альтернативы PHP, такие как Robo , Task и Bldr .

У вас есть идеальный рабочий процесс разработки и развертывания WordPress? Пожалуйста, оставьте свои предложения ниже!

Для отличного хостинга WordPress мы рекомендуем SiteGround . SiteGround предлагает автоматические обновления ядра и плагинов WordPress, ежедневное резервное копирование и SSL-сертификаты бесплатно в каждом плане.