Использование системы управления версиями (Git) в базе данных MySQL



Я дизайнер/разработчик WordPress, который все больше и больше участвует в использовании контроля версий, особенно Git, хотя я использую SVN для некоторых проектов. В настоящее время я использую Beanstalk для моего удаленного РЕПО.



добавление всех файлов WordPress в мое РЕПО не проблема, если бы я хотел, я знаю, что могу .gitignore файл wp-config, но так как я единственный разработчик, в настоящее время, и эти проекты с закрытым исходным кодом, это действительно делает мало чувство.



WordPress сильно зависит от базы данных, как и любая CMS, чтобы сохранить текстовое содержимое и многие настройки в зависимости от конкретной конфигурации плагина/темы, которую я использую. Мне интересно, как лучше всего использовать контроль версий в базе данных, если это вообще возможно. Я думаю, что я мог бы сделать дамп SQL, хотя мой сервер MySQL работает на Windows (читай как: я не знаю, как это сделать), а затем добавить дамп SQL в мой репозиторий. Но когда я нажимаю что-то живое, это позирует огромные угрозы безопасности.



есть ли общепринятая практика делать это?

724   4  

4 ответов:

вы можете создать резервную копию базы данных в репозитории git. Конечно, если вы поместите данные в Git в двоичной форме, вы потеряете всю способность git эффективно хранить данные с помощью diffs (изменений). Таким образом, лучшая практика номер один заключается в следующем: хранить данные в текстовом сериализованном формате.

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

Как говорится, то, что вы хотите сделать, это не то, что обычно имеют в виду разработчики, когда они говорят о размещении базы данных в git. Например, если Вы читаете ссылку, опубликованную @eggyal (ссылка на codinghorror) вы увидите то, что на самом деле помещается в git, - это скрипты, необходимые для создания исходной базы данных. Могут существовать дополнительные сценарии, например для заполнения данных базы данных чистым состоянием или для заполнения ее тестовыми данными. Все такие сценарии sql являются текстовыми файлами и в значительной степени имеют тот же формат, что и дамп sql, который вы получите от mysqldump. Так что нет никаких причин, по которым вы не можете сделать это таким образом с вашими ежедневными данными.

существует не так много программного обеспечения, доступного для баз данных управления версиями, таких как MySQL и MongoDB.

но один находится в стадии разработки и бета-версия будет запущена в ближайшее время. Проверьте Klonio - контроль версий для баз данных

статьи Как синхронизировать локальный и удаленный блог WordPress с помощью управления версиями дает советы о том, как автоматизировать синхронизацию между двумя экземплярами (разработка, производство) блога WordPress с помощью Mercurial. Is упоминает, что для этого сценария Git и Mercurial очень похожи.

Шаг 4 (синхронизация баз данных) представляет интерес здесь.

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

затем он разрабатывает конфликты и скриптовую часть задания.

есть учебник по управлению версиями в Mercurial там, если вы не знакомы с ним.

имейте в виду, что Wordpress хранит все содержимое ленты новостей в базе данных, поэтому даже если вы не вносите никаких изменений, будет много изменений контента.

Comments

    Ничего не найдено.