我有时会开发Drupal网站。这个开发涉及编写自定义模块,当然还有很多配置工作在管理界面上。
我使用SCM跟踪我的自定义模块(git当然..)。不幸的是,所有drupal模块的配置更加重要和脆弱。这些设置在数据库中传播,因此无法轻易跟踪。
我每天都会创建我的开发数据库备份,但是在意识到出现问题后,将备份与实际状态进行比较以寻找差异是一件痛苦的事。
您是否有任何最佳实践或建议如何以专业方式进行? (我仍然使用Drupal 6,如果这很重要,但我也对7和8版本的新功能感兴趣)我读到了非常有前景的功能模块,但不完全是我需要的。
我的第一个想法是:(1)一个模块,可以将所有设置存储在可以轻松跟踪SCM的文件中,或者(2)一些自动操作,每次更改时都会将表导出到文件中
答案 0 :(得分:8)
随着时间的推移,越来越多的配置可以移动到SCM中。
在Drupal 7状态下,有些人开始将他们的网站开发为installation profiles。 E.g:
http://walkah.net/blog/every-drupal-site-install-profile/
Features是跟踪更改的另一种方式,可用于随时间更改配置,例如当几个人在网站上工作并想要分享他们在本地开发机器上构建的配置时。使用ctools和drush可以增强功能的可用性(请参阅Drush CTools Export Bonus module,就像您采用该路线一样)。
为了快速导入/导出Node types
,Taxonomy
,User
,Field API fields
和Field groups
http://drupal.org/project/bundle_copy似乎是个不错的选择。
以下是关于不同选项的好文章:http://palantir.net/blog/multi-headed-drupal
使用Drupal 8,我们将看到配置管理发生重大转变,因为配置导出将构建到核心中。有几个core initiatives,一个是configuration management initiative。某些功能的后端可用as a Drupal 7 module。
除此之外,我喜欢在工作时处理事情的方式是记录我随着时间或在我正在进行的项目的问题跟踪器中改变的事情。