我们目前使用SVN存储库来确保每个人的本地环境都保持最新。但是,Drupal网站开发有点棘手,因为您编写的任何自定义代码(例如,为节点主体编写的PHP代码)都存储在数据库中,并且SVN工作副本无法识别这些更改。
目前有一些开发人员正在Drupal网站的同一区域工作,但我们不确定如何最好地将我们本地的Drupal数据库更改合并在一起。提交数据库转储补丁最多看起来很笨拙,而且很可能是低效且容易出错的。
对于如何处理此问题的任何建议表示赞赏!
答案 0 :(得分:5)
不幸的是,数据库部署/更新是Drupals的一个弱点。有关如何处理它的一些建议,请参阅this question & answers以及this one。
至于CCK,您可以找到一些提示here。
至于内容中的php代码,我同意googletorp,你应该避免这样做。但是,如果由于某种原因你绝对必须这样做,你可以尝试将代码简化为简单的函数调用。因此,您将在模块中拥有该功能(这将通过SVN进行跟踪)。但是,你只需要一点点就不再需要内联代码......
答案 1 :(得分:4)
如果你将PHP代码放入数据库,那么你做错了。有些东西在数据库中,如视图和cck字段以及一些设置。但是如果你把php代码放在节点体中,那你就会产生很大的代码维护问题。你应该真的使用API和钩子。使用eval等创建模块而不是丑陋的黑客。
答案 2 :(得分:2)
以上所述的一切都是真实而好的建议。为了回答您的实际问题,您可以使用一些最近的模块来传输各种开发人员所做的更改。
“功能”模块可以解决Drupal所描述的问题,它经常提供很好的功能,尽管在DB中存储了大量的配置和结构。此模块使您可以捕获功能并将其作为伪模块输出(具有.info和代码文件以及所有模块的资格)。以下是它的工作原理:
你可以告诉你的老板你用剃刀重点手动完成所有这一切,以避免出现1个错误;) 我希望这会有所帮助 - http://drupal.org/project/features
答案 3 :(得分:1)
通过提交数据库转储补丁,您的意思是在每次更改后获取数据库的整个摘录并提交它吗?
数据库的主副本怎么样?将所有表格,视图,sps等提取到单个文件中,将它们放入svn并对各个对象进行合并编辑?