使用水银钩创建/加载数据库转储版本
-
11-09-2019 - |
题
我用水银进行版本控制我的Drupal项目源文件(我既是一个VCS和Mercurial新手)开始。然而,数据库仍然是“版本控制的”使用月.sql.gz的文件的目录。
我要的是有一个单一的数据库转储文件的地方我的仓库内,这将与当前的转储覆盖当数据库的变化,并导入到数据库中,当我想回滚到另一个版本。
我手动做了,而且它的工作。但是,我真的希望的东西,会自动执行每次提交/更新倾销/加载。我真的很喜欢它会挂接到水银不是被外在的东西一样,首先转储数据库中的生成文件,然后提交,因为我喜欢与TortoiseHg的工具工作,我不觉得有另一个脚本运行。
现在,似乎像上mysql .... < dumpfile.sql
钩的update
将每次更新后加载数据库转储的简便方法。但对于自动倾销?
有一个类似的问题了解 SVN的pre-commit钩子,和接受的答案是,它可能是一个坏主意。它是否适用于水银?也许另一钩(prechangegroup
?)将工作?
编辑:
我要指出,我使用它由我自己,我的本地机器上。它不应该超越单个用户。
解决方案
它应该是细带pre-commit
钩转储数据库。只是要小心不要使用precommit
挂钩,因为它是一个不同的东西(在事务内部运行)。
在一般情况下,为每个命令(update
,commit
等)pre-<command>
钩执行该命令之前运行。
其他提示
看起来这更是一个更新操作。我相信你是工作在数据库上,特意选择导出的SQL模式,并承诺。问题是当你从(或其他位置),或者你别人更新从他们更新。水银具有钩。
另一种方法是创建自己的善变的插件/扩展程序,实际上可以谈谈目录数据库(MySQL的),并可能提供更多有用的信息。这一切都取决于你了解了一下蟒蛇的。
不隶属于 StackOverflow