【问题标题】:How to make IntelliJ IDEA recognize the Grails database migration plugin's DSL?如何让 IntelliJ IDEA 识别 Grails 数据库迁移插件的 DSL?
【发布时间】:2012-04-23 02:24:12
【问题描述】:

借助出色的 db migration Grails plugin,将 Liquibase 数据库迁移捆绑到 Grails 项目中真的很容易,这样我的模式就可以与我的应用程序代码一起进行版本控制,并提供一个漂亮、干净、易于编写脚本 升级/降级机制。

唯一的困难是 IntelliJ IDEA 对数据库迁移插件使用的 DSL 一无所知!我知道这样的 IntelliJ IDEA can deal with specialized DSLs,但我似乎无法在任何地方找到用于 db 迁移插件的 gDSL 描述符。

大部分 DSL 直接来自 Liquibase XML 模式,并添加了一些额外的 Grails 优点,以便您可以在迁移期间运行任意 Groovy 代码。

有谁知道是否有用于 Grails 数据库迁移插件的 IntelliJ IDEA 的 gDSL 描述符文件,或者我可以在哪里找到其他人制作的文件,或者我可能如何自己制作一个?

【问题讨论】:

    标签: grails intellij-idea dsl grails-plugin liquibase


    【解决方案1】:

    这可能不是您想要的,但我所做的是在 changelog XML 文件中写入特定于 liquibase 的位。这样我就得到了 liquibase XML 模式提供的自动完成功能。这在 intellij idea 中被证明是非常流畅的。

    然后,如果您愿意,有一个命令:dbm-changelog-to-groovy 可以将您的 xml 转换为 groovy。

    不过,我不介意第二步。我在 xml 文件中保留与 liquibase 相关的更改,并在 groovy 文件中保留自定义 groovy 脚本,例如复杂的数据迁移任务,对此我感到非常满意。

    【讨论】:

    • 是的,这不是我所追求的,但它现在绝对是一个功能性的解决方法。不幸的是,我的大部分更改都涉及大量 groovy 代码,因为我正在使用(非常)遗留数据库并对其进行规范化/升级,所以我真的希望 IntelliJ Idea 能够使用 DSL。
    【解决方案2】:

    IntelliJ 允许 creation of plugins for custom languages,这是人们需要专门为 liquibase DSL 做的事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-07
      • 2011-01-07
      • 1970-01-01
      • 2012-05-20
      • 2019-08-31
      • 2016-08-03
      • 2014-03-29
      相关资源
      最近更新 更多