mysql数据库version版本控制_MySQL数据库版本控制

你用什么方法来控制你的数据库?我已经将所有数据库表作为单独的.sql脚本提交到我们的respository(mercurial)。这样,如果团队中的任何成员对employee表进行了更改,比如说,当我更新我的存储库时,我会立即知道哪个表被修改了。在

这种方法在:What are the best practices for database scripts under code control中描述过。

目前,我正在编写一个python脚本来执行数据库文件夹中的所有.sql文件,但是,由于外键约束而产生的依赖性问题确保了我们不能仅仅以任何顺序运行.sql文件。在

python脚本将按照.sql文件的执行顺序生成一个文件。它将按照.sql文件在表格顺序.txt文件。表只有在外键表被执行之后才能执行,例如:

在表格顺序.txt在

表3.sql

表1.sql

table7.sql等

我已经通过解析“show create table”mysql命令的结果,从代码中为每个表生成了依赖关系列表。依赖关系列表如下所示:tblstate: tblcountry //tblcountry.sql must be executed before tblstate.sql etc

tblemployee: tbldepartment, tblcountry

生成表格顺序.txt,我需要一个这样的算法:

^{pr2}$

正如您所想象的,这涉及到许多递归。我开始怀疑这是否值得努力?如果外面有什么工具?有什么工具(或算法)来生成执行单独的.sql表和视图的顺序列表,并考虑到依赖关系?对每个表/视图单独的.sql文件进行版本控制更好,还是将整个数据库的版本控制为单个.sql文件更好?我将感谢你的任何回应,因为这花了这么多天。谢谢。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值