如何将 MySQL 代码放入源代码管理中?

Posted

技术标签:

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

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

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

【问题讨论】:

【参考方案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,也许它会做你需要的......

【讨论】:

以上是关于如何将 MySQL 代码放入源代码管理中?的主要内容,如果未能解决你的问题,请参考以下文章

如何将mysql数据放入弹出窗口?

好代码是管出来的——使用Git来管理源代码

CRM客户关系管理系统商业项目

如何将 JS 代码放入 React 组件中

如何将 html 代码放入 Django 中的模板中

如何将此 Objective-C 代码放入按钮操作中?