grails - Grails 2.x 模式导出或类似命令能否为给定数据源的模式更新生成 DDL?

标签 grails ddl schemaexport

Grails 模式导出在生成 DDL 以创建特定数据库的数据库模式方面做得很好。但是,我想做的是让 grails 只输出 DDL 以更新已创建的模式,而不是输出 DDL 从头开始​​创建它。

我认为这应该是可能的,因为如果您指定,grails 确实能够实际更新模式 dbCreate = "update"在您的数据源中。

但我只是想让 grails 吐出它会运行的内容,而不是实际执行它,所以我可以通过 SQL 工具以受控方式自己执行它。

最佳答案

正如@GreyBeardedGeek 在评论中指出的那样,Database Migration Plugin (现在默认包含在内)可以生成您正在寻找的“模式差异”,并且它的作用远远超过 Vanilla dbCreate = "update"确实如此,因为 Grails 的原生 db 更新仅依赖于 Hibernate 提供的内容,并且它可以进行的更新非常保守。

特别是,您正在寻找的数据库迁移插件部分是 dbm-update-sql 脚本,它将为您提供它将运行以将数据库更新到当前模式版本的 SQL。

一般来说,我强烈建议使用数据库迁移插件之类的工具,因为它将您的数据库架构与您的应用程序代码捆绑在一起,您可以轻松地将它们一起进行版本控制,并且它还包含许多工具,因此运行更新要少得多痛苦,并允许回滚和自定义脚本根据需要进行按摩。

关于grails - Grails 2.x 模式导出或类似命令能否为给定数据源的模式更新生成 DDL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12432203/

相关文章:

spring - 具有自定义权限的 Grails ACL

grails - 关系1 a 1错误插入数据

xml - 定义XML数据源,并在引导阶段将其导入到grails应用中

Grails Release 插件未在远程 maven 存储库上部署插件

procedure - 如何在 Teradata 中提取存储过程主体

python - 在不破坏 Django Flow 的情况下修改模型

mysql。无法创建架构。我收到此错误 : ERROR 1005 (HY000): (errno: 150)

nhibernate - 防止 Nhibernate schemaexport 生成外键约束对有很多关系

oracle - 抑制 ddl 创建脚本中的 ORA-00942 错误