我用水银进行版本控制我的Drupal项目源文件(我既是一个VCS和Mercurial新手)开始。然而,数据库仍然是“版本控制的”使用月.sql.gz的文件的目录。

我要的是有一个单一的数据库转储文件的地方我的仓库内,这将与当前的转储覆盖当数据库的变化,并导入到数据库中,当我想回滚到另一个版本。

我手动做了,而且它的工作。但是,我真的希望的东西,会自动执行每次提交/更新倾销/加载。我真的很喜欢它会挂接到水银不是被外在的东西一样,首先转储数据库中的生成文件,然后提交,因为我喜欢与TortoiseHg的工具工作,我不觉得有另一个脚本运行。

现在,似乎像上mysql .... < dumpfile.sql钩的update将每次更新后加载数据库转储的简便方法。但对于自动倾销?

有一个类似的问题了解 SVN的pre-commit钩子,和接受的答案是,它可能是一个坏主意。它是否适用于水银?也许另一钩(prechangegroup?)将工作?

编辑:

我要指出,我使用它由我自己,我的本地机器上。它不应该超越单个用户。

有帮助吗?

解决方案

它应该是细带pre-commit钩转储数据库。只是要小心不要使用precommit挂钩,因为它是一个不同的东西(在事务内部运行)。

在一般情况下,为每个命令(updatecommit等)pre-<command>钩执行该命令之前运行。

其他提示

看起来这更是一个更新操作。我相信你是工作在数据库上,特意选择导出的SQL模式,并承诺。问题是当你从(或其他位置),或者你别人更新从他们更新。水银具有钩。

另一种方法是创建自己的善变的插件/扩展程序,实际上可以谈谈目录数据库(MySQL的),并可能提供更多有用的信息。这一切都取决于你了解了一下蟒蛇的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top