【发布时间】:2010-04-27 12:21:34
【问题描述】:
我知道我可以将所有 MySQL 代码手动复制到文件中,然后将这些文件放入源代码管理中。但是有没有办法自动做到这一点?
我想对存储过程执行此操作,但也对表/事件/触发器创建脚本执行此操作。
【问题讨论】:
标签: mysql version-control sql-scripts
我知道我可以将所有 MySQL 代码手动复制到文件中,然后将这些文件放入源代码管理中。但是有没有办法自动做到这一点?
我想对存储过程执行此操作,但也对表/事件/触发器创建脚本执行此操作。
【问题讨论】:
标签: mysql version-control sql-scripts
您可以在数据更改时创建触发器,这会将更改自动存储到某个源代码控制中。但是,没有自动的方法可以通过这种方式跟踪结构更改(表、存储过程等)。所以可能最好的方法是转储数据库并将这些转储存储在源代码管理中。您可以定期执行此操作以使事情自动化。
【讨论】:
mysqldump --routines --no-create-info --no-data --no-create-db --skip-opt DATABASE 是适合您的命令。
根据 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
【讨论】:
不太明白你想做什么。
看看Liquibase,也许它会做你需要的......
【讨论】: