gpt4 book ai didi

sql - 使用 DVCS [Mercurial] 将我的数据库置于版本控制之下

转载 作者:太空狗 更新时间:2023-10-30 01:47:20 25 4
gpt4 key购买 nike

对我的整个数据库进行版本控制的最佳方法是什么?

为每个数据库对象(表、 View 、过程..)创建一个文件,或者更确切地说,为所有 DDL 脚本创建一个文件,并且任何新的更改都将放在一个单独的文件中?

如何处理在数据库管理器工具中所做的更改?

我想要一个适用于任何类型的 RDBMS 的通用解决方案。

还有其他选择吗?

最佳答案

总的来说,我是 VCS 的忠实粉丝,也是 Mercurial 的忠实拥护者,但我真的认为你走错了路。

VCS 不仅仅是关于迭代更改、“什么”,它们还关于回答“谁”、“何时”和“为什么”。对于数据库,这些答案没有那么有趣或难以提供给 VCS。如果您每晚执行导出并提交,“谁”将始终是“cron”,而“为什么”将始终是“午夜”。

现代 VCS 做得很好的另一件事是帮助您 merge 来自多个分支的更改。这在数据库世界中不太适用。你很少会说“我想要这个表结构,但是这个数据”,如果你这样做,文本/差异 merge 不会对你有太大帮助。

真正做到“做什么”和“何时”做得很好的是增量备份系统,这可能更合适。

在工作中我们使用 Tivoli,在家里我使用 rdiff-backup 和 duplicity,但有很多不错的选择。

我想我的一般经验法则是“如果它是由人手输入的,那么它会进入源代码控制,如果它是生成/导出的,那么它会进入增量备份”

当然你可以做到这一点,但我认为它不会比更传统的备份解决方案给你带来太多好处。

关于sql - 使用 DVCS [Mercurial] 将我的数据库置于版本控制之下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3361939/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com