关于Git的Drupal,如何处理数据库?

时间:2011-03-19 19:50:07

标签: git drupal

我目前正在开发一个Drupal网站,其中有几个人在Git上;重要的是,这个网站将使用没有路径的相同数据库,因为每个开发人员在另一个目录上都有开发版本。

我该怎么做?

也许我应该让Drupal只在开发上使用SQLite;然后我们可以将SQLite文件添加到Git存储库。

2 个答案:

答案 0 :(得分:14)

不使用数据库级别来存储您的网站组件,而是使用代码。在features模块的帮助下,Drupal现在对视图,内容类型,字段,输入格式等的 exportables 提供了很好的支持。

请参阅The Development -> Staging -> Production Workflow Problem in DrupalCode driven development: using Features effectively in Drupal 6 and 7演示文稿。

答案 1 :(得分:10)

我已经习惯了Django,它可以很容易地导出数据库的“fixture”(备份)并将其存储在像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

这里的问题是,您必须小心将数据库同步回实时网站。让多人抓住最新版本的实时数据库用于测试目的很简单,但将某人的本地版数据库推回生产可能是危险的(但只有当多个人在同一个项目中时才会这样做)。 / p>

为了好奇,这是我在WordPress StackExchange网站上提出的类似问题:https://wordpress.stackexchange.com/questions/12239/migrating-data-between-local-and-development-server - 然后我在这里询问(并回答)了一个更具体的问题版本:https://wordpress.stackexchange.com/questions/12719/multiple-developers-editors-working-on-a-site-in-progress