Drupal DATABASE部署策略?

cod*_*ama 14 svn drupal

从这个项目:什么是最好的Drupal部署策略?.... 我引用:

数据库比较棘手; 清理开发/暂存数据库并将其推送到最初是最容易的,但如果实时站点上的用户也在生成内容,那么在进行增量数据库更新时会有一些问题.

我想要一些关于如何做到这一点的想法?目前,我在本地计算机上获得了现有数据库的完整副本,提交了该subversion,然后部署整个数据库.目前该文件是15megs,每次我必须上传整个文件(我认为subversion将其视为一个完整的新文件,因为它每次都有很多变化).

所以,我的问题是:

  1. 提交时如何降低Db大小(除了提交频率较低)?
  2. 有没有其他方法可以保持我的数据库和服务器数据库同步?特别是考虑到用户会一直发布新数据?

Jer*_*nch 13

有没有其他方法可以保持我的数据库和服务器数据库同步?特别是考虑到用户会一直发布新数据?

我们在任何地方都有一个庞大的分布式团队和编辑人员,因此部署数据库是不可行的.

为了解决这个问题,我们广泛使用了更新功能.我们有一个没有实际代码的模块,我们用它来更新设置.每次开发人员进行配置更改时,他们都会在此模块中编写更新函数,该函数在运行时将对其他开发DB进行相应的更改,暂存和生效.

存在一些问题,尤其是交叉依赖性(如果人们在多个模块中编写更新函数),并且编写管理员中相对较小的更改可能需要一些时间.安装配置文件api有助于此.

例如

function mysite_update_6000() {
  install_include(array('user'));
  $editor_rid = install_add_role('editor');
  install_add_permissions(DRUPAL_ANONYMOUS_RID, array('do something'));
  install_add_permissions($editor_rid, array('do something', 'administer nodes'));
  return array();
} 
Run Code Online (Sandbox Code Playgroud)

将添加角色并为其分配一些权限.这样做可以保留代码中的所有更改,这样您就不必尝试迁移和同步数据库.

还有一个迁移模块可以帮助解决这个问题,它会将更改记录到表中并将它们保存到更新功能中.不要将其与用于内容迁移的drupal.org迁移模块相混淆.

我们已经取得了一些成功,但也有一些功能模块的问题,这可以帮助迁移功能.