在Grails中,是否可以仅为一个域类禁用自动表创建/更新?
假设我有域类Foo
,Bar
和Zonk
。我想要Foo
和Bar
的自动表格更新,而我不希望对Zonk
表格进行任何自动更改。
这可能吗?
为什么需要有选择地禁用表更新?其中一种情况是Zonk
后面的表包含数百万行,因此对该表所做的任何更改(例如添加对外键的引用)都需要数天才能完成。
答案 0 :(得分:5)
没有直接的支持,但你可以修复。但你真的不想要“安全”表的自动更新。一些示例 - 如果您重命名列或表,它将添加一个新的但不删除旧的。如果添加一个不允许空值的新列,它将被添加为可空,因为否则旧行将无效。如果您扩展列,即使没有数据丢失也不会更新。
使用数据库迁移会更好,而Liquibase是目前最好的选择。 Database Migration plugin是Grails的官方迁移插件,使用Liqibase。