Grails 2.5:“dbm-gorm-diff”不断生成相同的更改

2023-12-21

首先,我们删除了数据库,然后运行我们的应用程序dbCreate="update"打造良好的工作基地。

然后我们跑:

grails dbm-generate-changelog baseline.xml

创建脚本来生成我们的架构。我们删除了dbCreate=xxx来自DataSource.groovy并在我们的中添加了以下内容Config.groovy:

grails.plugin.databasemigration.updateOnStart = true
grails.plugin.databasemigration.updateOnStartFileNames = ['changelog.groovy']

然后我们启动了我们的应用程序,它创建了数据库,这次是从 liquibase 开始的,我们认为一切都很好。

然后我们什么也没改变(没有改变源代码),并且做了:

grails dbm-gorm-diff should_be_empty.xml --add

令我们惊讶的是,这生成了 9 个额外的变更集,全部用于索引。

e.g:

<changeSet author="me(generated)" id="1438097433176-1">
    <createIndex indexName="site_id_uniq_1438097432189" tableName="adobe_message_service_config" unique="true">
        <column name="site_id"/>
    </createIndex>
</changeSet>
<changeSet author="me(generated)" id="1438097433176-4">
    <createIndex indexName="IX_note_player" tableName="note">
        <column name="player_id"/>
    </createIndex>
</changeSet>

很奇怪,这些变化是从哪里来的呢?因此,我们停止并再次启动应用程序,查看数据库更改日志表,发现所有 9 个新更改集都已运行。

所以我们第二次这样做,真的期望没有变更集:

grails dbm-gorm-diff should_be_empty_this_time.xml --add

现在它生成了 5 个更改集,所有索引再次出现,所有索引都是之前找到的 9 个更改集的重复项。查看数据库本身,已经存在一个名称、表和列完全相同的索引。所以数据库已经有了更改,现在相同的重复更改在更改集中两次,我们不知道为什么它出现在原始基线中dbm-generate-changelog

到底是怎么回事?


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Grails 2.5:“dbm-gorm-diff”不断生成相同的更改 的相关文章

  • 如何在 Grails/GORM 中将域类模型对象从一个派生类更改为另一个派生类

    给定以下 Grails GORM 域类并使用每个层次结构表继承 class Book static belongsTo parent Parent String title abstract class Parent static hasM
  • 在 Eclipse (Spring Source) 中,Grails 始终以生产模式构建

    当在 Grails 项目中使用 Eclipse 时 战争的构建似乎陷入了生产模式 如果您想部署到附加的 tcServer 您只需右键单击您的项目 然后选择 运行方式 gt 在服务器上运行 如果您将 grails 项目设置为 dev 右键单击
  • 向grails中的所有视图添加变量

    我试图在所有视图中为当前用户 POJO 设置一个变量 以便我可以获得用户名之类的信息并检查他们在每个视图 包括默认布局 上的角色 如何在 grails 中设置某些内容 例如 currentUser 以便在每个 grails 视图中都可以访问
  • 将结果行强制转换为对象

    有没有办法将调用存储过程获得的结果行强制转换为特定对象 以便我可以仅将该对象的列表传递到视图中 我知道我可以使用 Node list 之类的东西来做到这一点 但我最终将用一个相当复杂的存储过程替换 getnodes 该存储过程创建临时表并执
  • 如何处理“IllegalStateException:BeanFactory 未初始化或已关闭”?

    使用 Tomcat 7 上的 Grails 2 0 0 我在启动时得到以下结果 2011 08 21 11 10 09 758 main ERROR StackTrace Full Stack Trace java lang Illegal
  • Grails 中 findAll、getAll 和 list 的区别

    使用 Grails 有多种方法可以完成同一件事 查找所有域类实例 Book findAll Book getAll Book list 检索指定 id 的域类的实例 Book findById 1 Book get 1 你什么时候使用每一个
  • 带有 Grails 的 AOP

    我想在我的 Grails 项目中创建自定义日志记录注释 My code class MyService AuditLog def method1 println method1 called method2 AuditLog def met
  • 如何重写 GORM/Grails 的 addTo* 和 RemoveFrom* 方法?

    我尝试重写 Grails GORM 提供的动态方法 addTo 但它似乎不起作用 这是代码 class Match static hasMany players Player matchPlayers MatchPlayer void ad
  • grails 上的同步块在 Windows 上有效,但在 Linux 上无效

    我有一个 grails 应用程序 它依赖于服务中的同步块 当我在 Windows 上运行它时 同步按预期工作 但当我在 ams linux 上运行时 会出现 StaleObjectStateException 该问题在以下示例中重现 cla
  • 在 Grails 中使用 AOP 不适用于服务

    我使用 Grails 2 2 3 并在 grails app conf spring resources groovy 中键入以下代码 beans xmlns aop http www springframework org schema
  • 如何在视图中调用 Grails 服务?

    简单的问题 我有一个服务类 比方说helpersService 和一个方法def constructURI params 如何从模板视图调用此方法 我尝试了以下代码但没有成功 img src 但我得到以下结果 No signature of
  • Grails 中不区分大小写的唯一约束

    我如何基本上对字符串数据类型字段执行唯一约束 class User String username String Email static hasMany roles Roles static constraints Email email
  • grails 重写重定向控制器方法

    我试图覆盖默认的控制器重定向方法 但似乎无法让以下代码正常工作 我创建了一个插件 我正在尝试使用 doWithDynamicMethods 来替换重定向 def doWithDynamicMethods ctx gt application
  • 告诉 GORM 不要保留属性

    有没有办法告诉 GORM 不要保留某个属性 我计划在我的 User 类上定义一个确认密码属性 我将使用它进行验证 但不应保留 使用瞬态关键字 GORM 可以指示不保留特定属性 以下代码片段显示了瞬态属性的使用 class Book stat
  • 适合 .Net 开发人员的 Grails/Roo

    我目前正在学习 Grails 和 Roo 绝大多数培训材料都是针对新开发人员或现有 Java 开发人员 有谁知道使用 Net C ASP Net Asp Net MVC 翻译现有开发经验的任何指南 资源或技巧 你做过很多 ASP MVC 吗
  • 模拟 Spock 中的超类

    如何对 Spock 中具有超类的类进行单元测试 该超类调用来自其超类的方法调用 或者如何模拟 Spock 中的超类 Ex class Bar def method1 parm1 Method actions class Foo extend
  • 在 Grails 中创建一个新的资源包?

    我想创建另一个资源包来组织我的 Grails 应用程序 Grails 提供了一个 messages 资源包 我需要创建一个 myApp 资源包 如何创建新的资源包并使用 g message GSP 标记读取其属性 你必须创建一个beangr
  • 使用 JQuery 的 Grails 项目,无需插件

    我正在尝试设置一个简单的 Grails 2 1 1 应用程序 该应用程序将使用 JQuery 我有一个名为 TestController 的控制器和一个位于正确位置的index gsp 我手动添加 JQuery 库 没有使用 Grails
  • 模块化大型 Grails 应用程序的最佳实践?

    我正在开发的 Grails 应用程序变得相当大 最好将其重构为几个模块 这样我们就不必每次都重新部署整个事情 将 Grails 应用程序拆分为多个模块的最佳实践是什么 特别是 我想创建一个域类 相关服务的包 并将其作为模块在应用程序中使用
  • 如何在GEB中选择内部元素的文本?

    我有以下场景 div ul class select2 results style width 400px li class select2 results dept 0 select2 result select2 result sele

随机推荐