MySQL数据库更改跟踪

3
你使用哪些工具来跟踪MySQL数据库的更改?目前,我正在一个项目中,我们使用纯文本文件(通过SVN进行版本控制),在其中手动添加SQL语句以更改数据库。然而,许多更改会神奇地消失,因此我们现在正在寻找更好的方法来跟踪我们的数据库更改。编辑:有一件事我忘了提到,我们正在使用存储过程和函数,因此不仅要跟踪数据库结构的更改/版本控制,还要跟踪这些过程和函数的更改。

我最近问了一个非常类似的问题:https://dev59.com/XUfRa4cB1Zd3GeqP7Txr - markus
4个回答

8

有一个简单的解决方案:

  • 通过脚本对数据库模式和静态数据进行所有更改
  • 对脚本进行版本控制

嗨!谢谢你的回答,但是我不明白这与我们目前正在做的有什么不同?请解释得更详细一些,也许我只是没理解到关键点。 - fredrik
纯文本文件实际上是否与数据库运行(即作为脚本使用)?从你的问题中,我得到的印象是它只是一条变更记录。 - anon
当我对数据库进行更改时,我会将修改表SQL(或创建过程或其他可能的语句)语句添加到这个纯文本文件中,然后我的同事将运行这些语句来更新他们的本地数据库,但有时会被遗忘... 有时也会忘记将其添加到版本控制的文件中。 但我开始明白你的意思了,将更改添加到脚本文件中,然后在我的本地数据库上运行它? - fredrik
是的,对实际文件运行数据库 - 不要尝试将内容复制并粘贴到您的mysql客户端应用程序中。为了正确执行此操作,只有一个人应该有更改生产数据库模式的权限 - 那个人在出现问题时就是你要指责的人 :-) - anon
我最终采用了你的想法来解决问题。我创建了一个文件夹结构来表示数据库,例如Database/DatabaseName/Procedures/ProcedureName.sql和Database/DatabaseName/Tables/TabelName.sql,然后我编写了一个PHP脚本,可以在数据库中正确的位置运行所有.sql脚本...到目前为止,看起来它会工作 :) 谢谢。 - fredrik

1

0

mysql-diff 比较的是表,但还没有比较存储过程。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接