Grails自動數據庫移植

DataSource.groovy文件中的dbCreate屬性十分重要,因爲它可以用來指定是否自動根據GORM類來創建數據庫表。其可選值爲:

  • create-drop - 當Grails運行時刪除並重新建立數據庫

  • create - 如果數據庫不存在則創建數據庫,存在則不作任何修改

  • update - 如果數據庫不存在則創建數據庫,存在則進行修改

開發環境(development)dbCreate屬性默認設置爲create-drop:

dataSource {
	dbCreate = "create-drop" // one of 'create', 'create-drop','update'
}

這樣在Grails應用程序啓動的時候會刪除掉原來的數據庫並重新建立,在production環境中通常需要修改該值。


今天生產出現了問題,問題原因竟是生產數據加了一個新的字段,理由是我們最近有些需求變更,新加了一個字段,在前臺部署到QA 系統的時候,數據庫連接到生產了,登錄發現有問題,立馬shutdow,後來在第二天的時候,客戶用的時候,發現有些功用不了報錯,今天下午投訴來的,找到原因是QA 系統有個新增的字段update 到生產了,導致不能用,後來刪除了這個字段,系統終於可以用了,嚇了一條。歸根到底還是自己不小心,後來想想在數據源配置的時候dbCreate=update 了,今天對於這個字段的理解深刻透了。挺危險的,所以對於發佈的時候要特別小心修改數據庫的配置,否則很容易出現問題,今天血的教訓,幸好解決了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章