Каков наилучший способ слияния базы данных разработки с производством?
Мы разрабатываем веб-сайты WordPress, и у нас есть клиенты, которые запрашивают изменения на своем веб-сайте, которые требуют от нас разработки в среде разработки перед публикацией в производство (в прямом эфире). Задача всегда заключалась в том, как объединить две базы данных WordPress, которые не синхронизированы, но имеют взаимно новый контент, который необходимо сохранить.
Этот контент варьируется от страниц, сообщений и комментариев до настроек плагина и другой тонкой информации. Поэтому мы экспортируем обе базы данных и используем FileMerge для Mac, чтобы отобразить различия и вручную объединить их. Это было бы хорошо, если бы базы данных WordPress не содержали столько метаинформации, которая в противном случае была бы нечитаемой для человека (примеры ниже).
Мой вопрос в том, есть ли у кого-то там рекомендация о том, как решить эту проблему? По существу, если бы мы могли просто опустить перечисленные ниже предметы (предполагая, что это безопасно?), Мы были бы совершенно счастливы продолжать использовать FileMerge. Но с этими элементами он чувствует, что мы расшифровываем самый длинный пароль в мире.
FYI WP Migrate DB (в том числе Pro) не способен на это. Мы говорили с авторами.
Спасибо.
Ниже приведен список записей базы данных, которые, как я думаю, могут быть опущены без каких-либо конфликтов в базе данных.
- _transient_random_seed
- active_plugins "a" значение (которое, я считаю, представляет количество активных плагинов)
- _site_transienty_timeout_browser
- recent_edited
- db_version
- cron
- _transient_timeout_feed_mod
- _transient_feed_mode
- rewrite_rules
- Версии плагинов
- _edit_locks
Ответы
Ответ 1
Я рассматриваю два возможных решения этой проблемы, однако оба имеют ограничение на требование php exec() на сервере разработки/промежуточного уровня. Поэтому хосты, такие как wpengine (которые мы используем), не будут работать с ними.
Если это не является для вас ограничением, проверьте https://revisr.io/ или http://versionpress.net/
Revisr является открытым исходным кодом, а VersionPress в настоящее время использует платную программу раннего доступа для поддержки разработки. Оба используют git для управления всеми аспектами синхронизации Wordpress с WP-Admin.
Ответ 2
Попробуйте сравнить данные MySQL с Red Gate. Я использую версию MSSQL и ее один из моих любимых инструментов разработки. Вы можете выбрать именно те таблицы и даже отдельные записи, которые вы хотите синхронизировать. Теперь о плохих новостях он работает только в Windows, и это не дешево.
Если бы я не развивался на машине под Windows, я бы купил ее только для этой программы.
http://www.red-gate.com/products/mysql/mysql-data-compare/
Ответ 3
Я ищу то же самое. Ближайший я получил WP Stagecoach, который является одним из немногих вещей, которые фактически объединяют данные! Недостатком является создание сайта-разработчика с живого сайта, что означает, что вы должны делать все свои изменения там... затем вы можете объединиться с живым сайтом (данными и файлами).
Это означает, что вы не можете работать локально и должны делать это на серверах Stagecoach.
Кроме того, одна вещь, на которую следует обратить внимание, - Datahawk, нет временных рамок, когда они выпустят ее, но она из WP Migrate DB Pro ребята... Мне сказал разработчик, что он будет обрабатывать слияния, как это получается, хотя я не знаю.