2010-04-27 34 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,也許它會做你所需要的...

相關問題