【问题标题】:MySQL database change trackingMySQL 数据库更改跟踪
【发布时间】:2009-04-18 11:18:29
【问题描述】:

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

编辑:
我忘了提一件事,我们正在使用存储过程和函数,因此我们不仅要跟踪/版本控制上的更改的数据库结构。

【问题讨论】:

标签: mysql database change-tracking


【解决方案1】:

有一个简单的解决方案:

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

【讨论】:

  • 嗨!感谢您的回答,但是,我看不出这与我们目前所做的有什么不同?请解释更多,我可能只是错过了重点。
  • 纯文本文件是否真的针对数据库运行(.e. is用作脚本)?从你的问题中,我得到的印象是它只是一个变化的记录。
  • 当我对数据库进行更改时,我将 alter table sql(或 create prcedure 或其他任何可能的内容)语句添加到此纯文本文件中,然后我的同事将运行这些语句针对他们的本地数据库,但有时会被遗忘..有时会忘记将其添加到版本控制文件中。但我开始明白你的意思了,将更改添加到脚本文件,然后针对我自己的本地数据库运行它?
  • 是的,针对数据库运行实际文件 - 不要尝试将内容复制并粘贴到您的 mysql 客户端应用程序中。为了正确地做到这一点,只有一个人应该有权更改生产数据库模式 - 当出现问题时,你会责怪这个人 :-)
  • 我最终根据您的想法制定了一个解决方案。我制作了一个代表数据库的文件夹结构,例如 Database/DatabaseName/Procedures/ProcedureName.sql 和 Database/DatabaseName/Tables/TabelName.sql,然后我制作了一个 PHP 脚本,它将在正确的位置运行所有 .sql 脚本数据库.. 到目前为止,它似乎可以工作:) 谢谢。
【解决方案2】:

Toad for MySQL 有一个很棒的架构比较工具

http://www.quest.com/toad-for-mysql/

【讨论】:

    【解决方案3】:

    我认为你需要这样的东西(我为 Firebird 测试过,效果很好): http://www.upscene.com/products.audit.index.php 我以为有 MySQL 版本,但没有 :(

    对于 MySQL,我只看到了这个: http://solutions.mysql.com/solutions/partner.php?partner=1532

    但如果只是为了开发,我觉得here给出的答案还不错

    【讨论】:

      【解决方案4】:

      mysql-diff 比较表,但尚未比较存储过程。

      【讨论】:

        猜你喜欢
        • 2011-08-15
        • 2011-09-30
        • 1970-01-01
        • 2021-05-16
        • 2018-07-07
        • 2016-05-10
        • 2011-08-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多