当前位置: 首页 > 知识库问答 >
问题:

将 Grails 从 2.3 版本升级到 2.4 版本后出现数据库错误

于嘉许
2023-03-14


我的grails应用程序在生产中使用h2嵌入式数据库,最近我决定将其从grails 2.3升级到2.4。在开发模式下运行良好,但在部署到tomcat后,我提到了一些问题,例如,用户计数有问题,ApplicationContext无法用getBean加载我的服务等。我检查了日志,发现了以下错误:

org.springframework.beans.factory。BeanCreationException:创建名为“dialectDetector”的bean时出错:调用init方法失败;嵌套异常是org.springframework.jdbc.support。MetaDataAccessException:提取DatabaseMetaData时出错;嵌套异常是org.h2.jdbc。JdbcSQLException:唯一索引或主键冲突:“primary key ON”“”“.PAGE_index”;SQL语句:ALTER TABLE PUBLIC。SHIRO_USER_ROLES添加约束PUBLIC。FKBA2210573552FAD9外键(SHIRO_USER_ID)引用PUBLIC。在java.util.concurrent.ThreadPoolExecutor$Worker.run的java.util.concurrent处,在java.til.concurrent_FutureTask$Sync.inerRun(FutureTask.java:334)处,在java.util.concurrent/FutureTask.run(FurtureTask.java:166)处,对java.util并发执行器$RunnableAdapter.call(Executtors.java:471)进行SHIRO_USER(ID)NOCHECK[23505-176]检查java.lang.Thread.run(Thread.java:701)处的(ThreadPoolExecutor.java:615)由:org.springframework.jdbc.support引起。MetaDataAccessException:提取DatabaseMetaData时出错;嵌套异常是org.h2.jdbc。JdbcSQLException:唯一索引或主键冲突:“primary key ON”“”“.PAGE_index”;SQL语句:ALTER TABLE PUBLIC。SHIRO_USER_ROLES添加约束PUBLIC。FKBA2210573552FAD9外键(SHIRO_USER_ID)参考公开。SHIRO_USER(ID)NOCHECK[23505-176]…6更多由:org.h2.jdbc引起。JdbcSQLException:唯一索引或主键冲突:“primary

看起来H2驱动程序版本已经在grails 2.4中更新了,它与以前版本的数据库模式不兼容。所以我能做些什么呢?如何将我的数据库迁移到新的H2,使其正常工作?

共有2个答案

柳德义
2023-03-14

这绝对是H2的问题。请看这篇H2的帖子,托马斯·穆勒在其中发现了这个问题。

现在我需要弄清楚的是如何从Grails全局中排除H2版本176并使用175,因为176之后的都是测试版!

刘野
2023-03-14

您可能需要使用这个来升级您的数据库。将这个Jar添加到您的类路径中。

 类似资料:
  • 问题内容: 我从说某个列(在我的子类中)不存在时得到一个错误。我以为可以通过更改字符串来升级数据库。但是显然不是,那么如何将SQLite数据库从版本1逐步升级到版本2? 如果这个问题看起来“笨拙”,我深表歉意,但我仍在学习Android。 @ Pentium10这是我在onUpgrade中所做的: 问题答案: 好的,在遇到更大的问题之前,您应该知道SQLite受到ALTER TABLE命令的限制,

  • 将 升级到 版时出现错误: 无法加载文件或程序集“WebGrease,Version=1.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(HRESULT异常:0x80131040) 源错误: 如何解决此错误。

  • 我们最近收到一封来自AWS的邮件: 主题:[需要的操作]关于简单电子邮件服务的重要通知(SIGv2弃用) 正文:我们最近观察到来自您帐户的Amazon SES SMTPendpoint上的签名版本2请求 问题: 我们没有使用AWS SES API发送请求,我们只是使用SmtpClient发送电子邮件。此方法不提供签名请求。他们自己的例子不包括任何签名。https://docs.aws.amazon

  • 请阅读相应的升级注意事项。 从 2.2.5 升级到 2.2.6 从 2.2.4 升级到 2.2.5 从 2.2.3 升级到 2.2.4 从 2.2.2 升级到 2.2.3 从 2.2.1 升级到 2.2.2 从 2.2.0 升级到 2.2.1 从 2.1.4 升级到 2.2.0 从 2.1.3 升级到 2.1.4 从 2.1.2 升级到 2.1.3 从 2.1.1 升级到 2.1.2 从 2.1.

  • 请根据你要升级的版本阅读相应的升级注意事项。

  • 我已将springfox升级到2.7.0版(和2.9.2): 并尝试启动应用程序,我收到下一个错误: 组织。springframework。豆。工厂未满足的依赖异常:创建名为“documentationPluginsBootstrapper”的bean时出错,该bean在URL[jar:file:..jar!/lib/springfox-spring-web-2.7.0.jar!/springfo