在Grails中的域类/表级别上有选择地禁用自动表更新(dbCreate ="none")?

kno*_*orv 2 grails grails-orm

在Grails中,是否可以仅为一个域类禁用自动表创建/更新?

假设我有域类Foo,Bar并且Zonk.我希望自动表更新FooBar,而我不想对Zonk表进行自动更改.

那可能吗?

为什么需要有选择地禁用表更新?其中一种情况是,后面的表Zonk包含数百万行,因此对该表所做的任何更改(例如添加对外键的引用)都需要数天才能完成.

Bur*_*ith 5

没有直接的支持,但你可以修复.但你真的不想要"安全"表的自动更新.一些示例 - 如果您重命名列或表,它将添加一个新的但不删除旧的.如果添加一个不允许空值的新列,它将被添加为可空,因为否则旧行将无效.如果您扩展列,即使没有数据丢失也不会更新.

使用数据库迁移会更好,而Liquibase是目前最好的选择.该数据库迁移插件的官方迁移插件Grails的,并使用Liqibase.