1、创建数据库
执行ry-cloud-postgreSQL脚本
原文地址(持续更新)
sql/postgresql.sql · Listen/RuoYi-Vue-Postgresql - Gitee.com
2、在Nacos中修改yml的相应的参数
涉及配置文件:
- ruoyi-job-dev.yml
- ruoyi-system-dev.yml
- 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
3、代码修改
提示:只修改ruoyi-system目录下的内容即可
3.1 修改pom.xml文件,将mysql的依赖jar包替换成postgresql
涉及配置文件:
- ruoyi-job-dev.yml
- ruoyi-system-dev.yml
- 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')
替换前
替换后