可以Grails的2.x的架构出口或类似的命令,生成DDL对于给定的数据源架构更新?(Can Gra

2019-09-22 11:23发布

Grails的架构出口确实产生DDL为特定的数据库中创建数据库模式的一个伟大的工作。 不过,我想做些什么,是有Grails的只是输出的DDL更新到已创建的模式,而不是DDL从头开始创建它。

我想它应该是可能的,因为Grails的确实有,如果你specificy实际更新架构的能力dbCreate = "update"在您的数据源。

但我只想Grails的吐出它会跑的,而不是真正做到这一点,这样我就可以通过一个受控的方式SQL工具执行它自己。

Answer 1:

作为@GreyBeardedGeek在评论中指出,该数据库迁移插件 (这是默认现在包括)可以生成“模式差异”,你所寻找的,它会比我们的香草多得多dbCreate = "update"呢,因为Grails的本地数据库更新只依靠什么Hibernate提供,它是在它可以做的更新速度非常保守。

特别是,你正在寻找的数据库迁移插件的部分是dbm-update-sql脚本,它会给你,它会运行更新DB到当前架构版本的SQL。

在一般情况下,我会强烈建议使用类似的数据库迁移插件的工具,因为它捆绑你的数据库架构与应用程序代码,您可以轻松地将其版本一起,而且还包括许多工具,使运行的更新要少得多痛苦,并允许回滚和自定义脚本需要按摩的事情。



文章来源: Can Grails 2.x schema-export, or similar command, generate DDL for schema updates given a datasource?