oracle数据库迁移到pgsql,"all_sequences" does not exist

在将数据库从Oracle迁移到PostgreSQL过程中遇到一个错误,提示'all_sequences' sequence不存在。创建该sequence后,可能会遇到其他问题。分析认为这可能是由于框架(如Hibernate)配置导致的。在项目中全局搜索Oracle相关线索,发现在spring-context.xml文件中有与Oracle sequence相关的配置,需要调整以适应PostgreSQL。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库从oracle迁移到pgsql,出现如下所示的异常:

字面意思理解到是pg库中没有all_sequences这个sequence的,但是你建上这个表之后,可能还会有别的错误,怎么解决呢?

报的错之中没有自己类相关的信息,所以考虑是框架的问题。

因为以前是oralce库,sequence是oracle的,所以全局搜索项目中存在不存在oracle的相关信息,结果在spring-context.xml中发现

<bean id="hibernateJpaVendorAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" p:database="ORACLE" p:showSql="true"/>
将其中的oralce属性修改为postgresql,问题解决。其实我是通过跟踪代码解决的。源码中有选择数据库的类型地方

异常:

2019-03-14 14:03:46,614 ERROR [org.hibernate.tool.hbm2ddl.SchemaUpdate] - HHH000299: Could not complete schema update
org.postgresql.util.PSQLException: ERROR: relation "all_sequences" does not exist
  位置:28

at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2477)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2190)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:300)
    at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:428)
    at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:354)
    at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:301)
    at org.postgresql.jdbc.PgStatement.executeCachedSql(PgStatement.java:287)
    at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:264)
    at org.postgresql.jdbc.PgStatement.executeQuery(PgStatement.java:231)
    at com.alibaba.druid.pool.DruidPooledStatement.executeQuery(DruidPooledStatement.java:143)
    at org.hibernate.tool.hbm2ddl.DatabaseMetadata.initSequences(DatabaseMetadata.java:149)
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值