【问题标题】:How to put MySQL code into source control?如何将 MySQL 代码放入源代码管理中?
【发布时间】:2010-04-27 12:21:34
【问题描述】:

我知道我可以将所有 MySQL 代码手动复制到文件中,然后将这些文件放入源代码管理中。但是有没有办法自动做到这一点?

我想对存储过程执行此操作,但也对表/事件/触发器创建脚本执行此操作。

【问题讨论】:

    标签: mysql version-control sql-scripts


    【解决方案1】:

    您可以在数据更改时创建触发器,这会将更改自动存储到某个源代码控制中。但是,没有自动的方法可以通过这种方式跟踪结构更改(表、存储过程等)。所以可能最好的方法是转储数据库并将这些转储存储在源代码管理中。您可以定期执行此操作以使事情自动化。

    【讨论】:

    • 我不知道你是否理解我的意思。我说的只是 MySQL 代码,而不是数据。数据库转储也会导出我想要的脚本,所以我认为如果我能找到一种只导出脚本的方法。
    • 所以您只想导出存储过程/触发器?那么mysqldump --routines --no-create-info --no-data --no-create-db --skip-opt DATABASE 是适合您的命令。
    • 我正在使用您的解决方案。谢谢
    【解决方案2】:

    根据 Michal 的回答,我目前使用的解决方案是:

    #!/bin/bash
    BACKUP_PATH=/root/database_name
    DATABASE=database_name
    PASSWORD=Password
    rm -f "$BACKUP_PATH/*.sql"
    mysqldump -p$PASSWORD --routines --skip-dump-date --no-create-info --no-data --skip-opt $DATABASE > $BACKUP_PATH/$DATABASE.sql
    mysqldump -p$PASSWORD --tab=$BACKUP_PATH --skip-dump-date --no-data --skip-opt $DATABASE
    hg commit -Am "automatic commit" $BACKUP_PATH
    

    【讨论】:

      【解决方案3】:

      不太明白你想做什么。

      看看Liquibase,也许它会做你需要的......

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-09
        • 2017-04-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多