前言
近期项目数据源需要从Oracle换成postgre,遇到的问题记录下来。
- 添加依赖
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
</dependency>
- maven 配置
<datasource.url>jdbc:postgresql://127.0.0.1:5432/数据库名?userSSL=false</datasource. url>
<datasource. username>用户</datasource.username>
<datasource. password>密码</datasource.password>
- 配置文件
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
spring.datasource.platform=postgres
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url=@datasource.url@
spring.datasource.username=@datasource.username@
spring.datasource.password=@datasource.password@
spring.jpa.properties.hibernate.default_schema=emg
- PSQLException: 错误: 关系 "dual" 不存在 ----因为postgre中没有dual这个辅助表,为了保证项目的正常运行(因为项目中配置有效连接测试用的dual表) 需要创建一个伪视图dual来代替:
CREATE OR REPLACE VIEW dual AS
SELECT NULL::"unknown"
WHERE 1 = 1;
ALTER TABLE dual OWNER TO postgres;
GRANT ALL ON TABLE dual TO postgres;
GRANT SELECT ON TABLE dual TO public;
必须授权public 以select 权限
- 此外还要注意两种数据库SQL函数的差异......