2010-04-27 33 views
2

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

我想这样做的存储过程,但也是表/事件/触发器创建脚本。

回答

3

基于米哈尔答案,我使用至今的解决方案是:

#!/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 
4

您可以在数据更改时创建触发器,这会将更改自动存储到某个源控件。但是,这种方法没有自动的方式来跟踪结构变化(表格,存储过程等)。所以最好的方法是转储数据库并将这些转储存储在源代码管理中。你可以定期做这件事来自动化。

+0

我不知道你是否理解我。我只谈论MySQL代码,而不是数据。数据库转储也导出我想要的脚本,所以我认为它可以工作,如果我找到一种方法只导出脚本。 – 2010-04-27 12:32:23

+2

所以你想只导出存储过程/触发器?然后'mysqldump - 例程 - 没有创建信息 - 无数据 - 无创建数据库 - 跳过 - 选择DATABASE'是你的正确命令。 – 2010-04-27 12:34:50

+0

我正在使用您的解决方案。谢谢 – 2010-04-27 12:59:29

1

真的不明白找你要怎样做。

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

相关问题