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

时间:2011-04-24 11:57:25

标签: grails gorm

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

假设我有域类FooBarZonk。我想要FooBar的自动表格更新,而我不希望对Zonk表格进行任何自动更改。

这可能吗?

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

1 个答案:

答案 0 :(得分:5)

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

使用数据库迁移会更好,而Liquibase是目前最好的选择。 Database Migration plugin是Grails的官方迁移插件,使用Liqibase。