1、创建数据库

执行ry-cloud-postgreSQL脚本

原文地址(持续更新)

sql/postgresql.sql · Listen/RuoYi-Vue-Postgresql - Gitee.com

2、在Nacos中修改yml的相应的参数

涉及配置文件

  1. ruoyi-job-dev.yml
  2. ruoyi-system-dev.yml
  3. ruoyi-gen-dev.yml

validationQuery: SELECT 1 

driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://localhost:5432/ry-cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: postgres
password: postgres

3、代码修改

提示:只修改ruoyi-system目录下的内容即可

3.1 修改pom.xml文件,将mysql的依赖jar包替换成postgresql

涉及配置文件

  1. ruoyi-job-dev.yml
  2. ruoyi-system-dev.yml
  3. ruoyi-gen-dev.yml

3.2 将SysMenuMapper.xml中的`query`改为query

3.3 全局替换项目中使用的ifnull函数为coalesce

因为postgresql数据库没有ifnull()函数。

注意只替换ifnull为coalesce,不带括号。

3.4 全局替换Mapper中 status = 0 为 status = '0'

3.5 全局替换Mapper中sysdate()为now()

因为postgresql数据库没有sysdate()函数

3.6 全局替换Mapper中find_in_set(#{deptId}, ancestors)为cast(#{deptId} as varchar) = any(string_to_array(ancestors,','))

部门查询SQL中使用到的find_in_set函数

3.7 修改ScheduleConfig,添加自动任务依赖

//pg启用特殊配置,否则会报错  update by wuzuhu on 20181224
prop.put("org.quartz.jobStore.driverDelegateClass", "org.quartz.impl.jdbcjobstore.PostgreSQLDelegate");

3.8 替换Mapper中date_format

  • 全局替换date_format(#{params.beginTime},'%y%m%d')替换成 to_timestamp(#{params.beginTime}, 'YYYY-mm-dd')
  • 全局替换date_format(#{params.endTime},'%y%m%d')替换成 to_timestamp(#{params.endTime}, 'YYYY-mm-dd')
  • 全局替换date_format(替换成 to_timestamp(to_char(
  • 全局替换,'%y%m%d')替换成,'YYYY-mm-dd'), 'YYYY-mm-dd')

替换前

替换后

Logo

快速构建 Web 应用程序

更多推荐