Drupal на Git, что делать с базой данных?

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

Как мне это сделать?

Возможно, мне стоит заставить Drupal работать с SQLite только на разработке; то мы могли бы добавить SQLite файл в репозиторий Git.

Ответ 1

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

См. Разработка → постановка → проблема рабочего процесса в Drupal и Разработка с кодовым управлением: эффективное использование функций в презентациях Drupal 6 и 7.

Ответ 2

Я привык к Django, где очень легко экспортировать "привязку" (резервное копирование) базы данных и хранить ее в системе управления версиями, например git. Недавно я занимался этим, но для WordPress. При этом я столкнулся с некоторыми людьми, говорящими об удивительном инструменте командной строки для Drupal, называемом drush: http://drupal.org/project/drush

Этот инструмент позволяет выполнять некоторые удивительные вещи из командной строки, особенно в сочетании с такими модулями, как "Резервное копирование" и "Миграция": http://drupal.org/project/backup_migrate

Основной смысл заключается в том, что вы создаете резервную копию базы данных на дампе SQL при нажатии/вытягивании на/с сервера, после чего вы можете восстановить БД впоследствии. Если что-то пойдет не так, по крайней мере, у вас есть резервные состояния БД в git. Думаю, эта последняя часть - действительно большая особенность.

Вот отличная статья о синхронизации локальных/живых сайтов с drush и git: https://web.archive.org/web/20131231204544/http://www.opc.com.au/web-development/drupal-release-management-drush-and-git

Здесь, как другой пользователь имеет дело с включением БД в репозиторий git: http://drupal.org/creating-drupal-test-sites#comment-2130760

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

Просто ради любопытства, здесь аналогичный вопрос, который я задал на сайте WordPress StackExchange: https://wordpress.stackexchange.com/info/12239/migrating-data-between-local-and-development-server - я тогда спросил (и ответил) более конкретную версию вопрос здесь: https://wordpress.stackexchange.com/info/12719/multiple-developers-editors-working-on-a-site-in-progress