MySQL数据库更改跟踪

MySQL数据库更改跟踪,mysql,database,change-tracking,Mysql,Database,Change Tracking,您使用什么工具来跟踪MySQL数据库中的更改目前,我正在一个项目中,我们使用纯文本文件(通过SVN控制版本),在对数据库进行更改时手动添加SQL语句。许多更改不时神奇地消失,我们现在正在寻找一种更好的更改跟踪数据库的方法。 编辑: 有一件事我忘了提到,我们使用的是存储过程和函数,因此我们不仅要跟踪/version controll上的更改,还要跟踪数据库结构。有一个简单的解决方案: 通过脚本对数据库架构和静态数据进行所有更改 脚本的版本控制 我认为您需要这样的东西(我对Firebird进行了

您使用什么工具来跟踪MySQL数据库中的更改
目前,我正在一个项目中,我们使用纯文本文件(通过SVN控制版本),在对数据库进行更改时手动添加SQL语句。
许多更改不时神奇地消失,我们现在正在寻找一种更好的更改跟踪数据库的方法。

编辑:

有一件事我忘了提到,我们使用的是存储过程和函数,因此我们不仅要跟踪/version controll上的更改,还要跟踪数据库结构。

有一个简单的解决方案:

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

我认为您需要这样的东西(我对Firebird进行了测试,效果非常好): 我以为有MySQL版本,但没有:(

对于MySQL,我只看到以下内容:


但是如果只是为了开发,我认为给出的答案是好的,比较表,但还不是存储过程。

Toad for MySQL有一个很棒的模式比较工具


您好!谢谢您的回答,但是,我看不出这与我们目前正在做的有什么不同?请进一步解释,我可能没有抓住要点。纯文本文件是否实际针对数据库运行(.e.is用作脚本)?从你的问题中,我得到的印象是,这只是一个更改记录。当我对数据库进行更改时,我添加了alter table sql(或create prcedure或其他任何可能的内容)语句添加到这个纯文本文件中,然后我的同事会在本地数据库中运行这些语句,但有时会忘记..有时会忘记将其添加到版本控制文件中。但我开始理解您的意思,我认为,将更改添加到脚本文件中,然后在我自己的本地数据库中运行它e?是的,针对数据库运行实际文件-不要尝试将内容复制并粘贴到mysql客户端应用程序中。要正确执行此操作,只有一个人有权更改生产数据库架构-当出现问题时,你会责怪这个人:-)我最终根据你的想法制定了一个解决方案。我制作了一个表示数据库的文件夹结构,例如database/DatabaseName/proceduresame.sql和database/DatabaseName/Tables/TabelName.sql,然后我制作了一个PHP脚本,它将在数据库的正确位置运行所有的.sql脚本。。到目前为止,它似乎会起作用:)谢谢。我最近刚刚问了一个非常类似的问题: