3

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

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

4

3 回答 3

4

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

于 2010-04-27T12:25:46.263 回答
4

根据 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
于 2010-04-27T13:40:18.547 回答
1

真的不明白你想做什么。

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

于 2010-04-27T13:43:04.710 回答