2013-01-07 51 views
0

我們希望通過我們的Jenkins(Hudson)構建服務器,使用數據庫遷移工具在我們的UAT和實時系統中實現數據庫模式更改。grails database-migration - 即使在沒有域模型更改時也會生成更改日誌

最簡單的方法是每次運行「-Dgrails.env = uat dbm-gorm-diff changelog-.xml --add」。但是,我的試驗顯示,即使在域模型中沒有更改,也會創建一個'空'更改日誌並更新changelog-master.xml。這並不理想。

有沒有我沒有找到的選項,說:「只有在域模型發生變化時才創建更改日誌」?

否則,它看起來好像我將不得不將步驟放入Ant構建腳本中以在changelog-.xml文件中查找條目,並且如果找不到:刪除該文件並從備份中恢復主更改日誌,或編輯它以刪除最新的「包含」條目。

如果任何人有其他好主意,他們會很受歡迎。

的問候,約翰

+0

什麼插件的版本? –

+0

版本1.2.2。這是GGTS通過其插件管理器找到的最新版本。我最近想要1.3.2的設施嗎?啊!我剛剛發現(記住?),我必須通過插件管理器明確刷新才能找到任何更新的版本。我剛剛得到1.3.2。 –

+0

1.3.2行爲是否一樣? –

回答

0

安裝1.3.2似乎地方補上一當插件被移除不會被刪除。對不起,這不是一個非常科學的描述,但它就是這樣。

我現在回到了1.2.2,但無論怎樣dbm- *劇本我跑,我得到了同樣的錯誤:

=============== =======

錯誤執行腳本錯誤DbmGenerateGormChangelog:groovy.lang.MissingMethodException:方法沒有簽名:static grails.plugin.databasemigration.MigrationUtils.dataSourceNameWithSuffix()適用於參數類型:(null)values :[null](注意:堆棧跟蹤已被過濾,使用--verbose查看整個跟蹤。) groovy.lang.MissingMethodException:無方法簽名:static grails.plugin.databasemigration.MigrationUtils.dataSourceNameWithSuffix()適用於參數t YPES:(空)值:[空] 在_DatabaseMigrationCommon_groovy $ _run_closure1.doCall(_DatabaseMigrationCommon_groovy:37) 在DbmGenerateGormChangelog $ _run_closure1.doCall(DbmGenerateGormChangelog:23) 錯誤錯誤執行腳本DbmGenerateGormChangelog:groovy.lang.MissingMethodException:的無簽名方法:靜態grails.plugin.databasemigration.MigrationUtils.dataSourceNameWithSuffix()爲參數類型是適用的:(空)值:[空]

==============

我已經刪除了1.3.2,重新安裝了GGTS,然後安裝了更早的版本,甚至回到1.2.1,然後回到1.2.2,但沒有變化。看起來我可能不得不嘗試一個新的工作空間,看我是否可以讓1.2.2再次工作。 RGDS,約翰

+0

供參考。導出的應用程序,刪除dbm插件,重命名應用程序並關閉GGTS。用新的工作區,導入的應用程序打開GGTS,添加了dbm插件1.2.2。現在我可以像以前一樣運行dbm- *腳本。 –

1

要避免:

grails.plugin.databasemigration.MigrationUtils.dataSourceNameWithSuffix()的參數類型是適用的:(空)值:[空]在

你不必使這一切事情改變項目名稱等,你只需要清除

「path_to_user_dir」/Grails的/項目/「PROJECT_NAME」/scriptCache目錄

相關問題