2011-03-19 21 views
13

我目前正在与Git上的几个人开发一个Drupal网站;这个网站使用相同的数据库而不使用路径是非常重要的,因为每个开发者都在另一个目录上有开发版本。关于Git的Drupal,如何处理数据库?

我应该怎么做?

也许我应该让Drupal和SQLite一起在开发上工作;那么我们可以将SQLite文件添加到Git存储库。

+0

也许你可以将mysql数据库添加到所有人都可以访问的外部服务器上,并打开它接受来自Internet的连接?我确实发现这可能是一个性能问题,这一切都涉及到您的互联网连接。 – Mescalito 2011-03-19 21:22:59

+0

不安全让所有人都可以访问数据库。 我需要查看提交到数据库以确定它们是否应该被合并到项目中,就像代码 – Asaf 2011-03-20 04:27:16

+0

您是否只希望跟踪对结构的更改或结构+数据? – 2011-03-20 06:39:02

回答

14

而不是工作在数据库级别来存储您的网站组件,使用代码。在features模块的帮助下,Drupal现在支持可导出的视图,内容类型,字段,输入格式等。

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

+0

最适合的答案,尽管最后我刚刚用备份和迁移模块导出数据库似乎是工作得很好 – Asaf 2011-03-22 07:09:42

10

我习惯于Django,它很容易导出数据库的“夹具”(备份)并将其存储在像git这样的版本控制系统中。我最近正在考虑这样做,但对于WordPress。虽然这样做,但我偶然发现一些人在谈论Drupal的一个令人敬畏的命令行工具,名为drush:http://drupal.org/project/drush

此工具允许从命令行执行一些令人敬畏的事情,尤其是与模块(如备份和迁移:http://drupal.org/project/backup_migrate

基本的要点是,当您向/从服务器推/拉数据库时,将数据库备份到SQL转储,然后您可以在以后恢复数据库。如果出现任何问题,至少你在git中有DB的备份状态。我认为,最后一部分是一个非常大的功能。

这里有一个同步的本地/直播网站与drush和Git一个伟大的文章:https://web.archive.org/web/20131231204544/http://www.opc.com.au/web-development/drupal-release-management-drush-and-git

下面是如何与包括DB在混帐回购协议的其他用户的交易:http://drupal.org/creating-drupal-test-sites#comment-2130760

这里的问题是,你”我们必须小心将数据库同步到现场。让多人抓住最新版本的实时数据库用于测试是很容易和简单的,但将其他人的本地版本的数据库推回到生产环境(但只有当多个人在同一个项目中时)可能会很危险。

只是为了好奇,这里有一个类似的问题,我问的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