我已经开始使用 Mercurial 对我的 Drupal 项目源文件进行版本控制(我既是 VCS 又是 Mercurial 新手)。但是,数据库仍然是“版本控制的”,使用日期为 .sql.gz 文件的目录。
我想要的是在我的存储库中的某处有一个单一的数据库转储文件,当数据库更改时,它将被当前转储覆盖,并在我想回滚到另一个版本时导入到数据库中。
我手动完成了它,并且有效。但我真正想要的是在每次提交/更新时自动进行转储/加载的东西。我真的更喜欢它与 Mercurial 挂钩,而不是像 makefile 这样首先转储数据库然后提交的外部东西,因为我喜欢使用 TortoiseHg 的工具,而且我不想运行另一个脚本。
现在,看起来像挂钩这样的东西mysql .... < dumpfile.sql
将update
是每次更新后加载数据库转储的一种简单方法。但是自动倾销呢?
关于 SVN 的预提交钩子有一个类似的问题,接受的答案是这可能是个坏主意。它适用于 Mercurial 吗?也许另一个钩子(prechangegroup
?)会起作用?
编辑:
我应该指出,我自己在本地机器上使用它。它不应该扩展到单个用户之外。