我在Grails有點新鮮感。我已經與它合作了一點,但沒有那麼多。儘管我對Java很熟悉。我的問題是關於模式更新。我知道Grails通過查看域類來創建Hibernate映射,因此如果我添加一個新屬性,Grails會自動爲數據庫中的該屬性添加一列。反之亦然?如果我刪除了一個屬性,該列是否被刪除?我沒有看到這種行爲,所以我想知道這是否是一個配置問題。我想我將不得不使用數據庫管理插件或類似Liquibase的東西。但是,我正在開展的這個項目非常簡單,目前我們還沒有決定我們是否正朝着這個方向前進。從域類中刪除屬性是否會導致模式的自動更新,從而刪除相應的列?
3
A
回答
10
這取決於您的dbCreate
設置DataSource.groovy
。如果它是create
或create-drop
那麼當您重新啓動時,所有內容都會重建。如果它是update
,則添加新的表格和列。如果是其他設置,則不做任何更改。
update
不符合大多數人的期望。這是悲觀的,不會做出可能導致數據丟失或損壞的更改。所以即使寬度較大也不會改變列的大小(例如,VARCHAR(50)
- >VARCHAR(200)
)。它不會添加索引。它會添加一個指定爲非空的新列,但它會將其添加爲空,否則以前插入的行將無效。但它不會刪除列或表格。所以你可以很容易地進入一個場景,你可以重新命名一個字段,並最終得到兩個 - 舊的和新的。
Liquibase是一個很棒的圖書館,http://grails.org/plugin/database-migration很受歡迎,因此很容易獲得對這兩者的支持。一旦你的模式在某種程度上穩定下來後,你就應該考慮使用插件了。
相關問題
- 1. 更新刪除相關模型屬性
- 2. 從simpledb刪除屬性/列
- 3. 是否可以從動態類中刪除屬性?
- 4. 從模型中刪除實體列 - 自動刪除腳手架?
- 5. 更新,刪除域模型
- 6. CKEditor的自動刪除樣式屬性,並添加「刪除」
- 7. 從XMLBean中刪除屬性
- 8. 從對象中刪除屬性是從具有相似名稱的另一個對象中刪除屬性
- 9. 貓鼬,從模型中刪除屬性
- 10. 從Backbone.js模型中刪除屬性
- 11. PostgreSQL:從JSON列中刪除屬性
- 12. 從QObject中刪除動態屬性
- 13. 從領域刪除模型
- 14. 更新而不是刪除
- 15. 更新而不是刪除
- 16. xpath從動態屬性列表中刪除一個屬性
- 17. 一旦從元素中刪除類,IE6不會更新樣式
- 18. 從jsp刪除會話屬性
- 19. 刪除外鍵屬性導致異常
- 20. 從Jobject刪除屬性c#
- 21. 從body ::刪除CSS屬性::
- 22. 如何從域名類中刪除自由形式的「標籤」?
- 23. 處理被動刪除更新(即歸檔而不是刪除)
- 24. 從Backbone.js模型完全刪除屬性
- 25. 刪除類屬性
- 26. 刪除類=屬性
- 27. 刪除從一個對象中的屬性,而無需創建一個新的(否刪除operateur)
- 28. 刪除@WebServlet會導致java.lang.ClassNotFoundException
- 29. 從模式中刪除表而不從數據庫中刪除它?
- 30. 從DataGrid中自動刪除新行