• 若依框架数据源切换为pg库


    一 切换数据源

    在ruoyi-admin项目里引入pg数据库驱动

    <dependency>
        <groupId>org.postgresqlgroupId>
        <artifactId>postgresqlartifactId>
        <version>42.2.18version>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    修改配置文件里的数据源为pg

    spring:
        datasource:
            type: com.alibaba.druid.pool.DruidDataSource
            driverClassName: org.postgresql.Driver
            druid:
                # 主库数据源
                master:
                    url: jdbc:postgresql://192.168.119.128:5432/FDS?stringtype=unspecified
                    username: postgres
                    password: ts123456
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    二 切换函数以及语法

    因为pg库里没有dual表,所以把配置文件里validationQuery的值,从SELECT 1 FROM DUAL 换为:select version()来判断数据库是否正常连接

    PageHelper分页插件换成pgsql的

    pagehelper:
      helperDialect: postgresql
      supportMethodsArguments: true
      params: count=countSql
    
    • 1
    • 2
    • 3
    • 4

    在mapper.xml里全局搜索sysdate(),换为now()
    在mapper.xml里全局搜索ifnull(字段,‘’) 函数,换成 COALESCE(字段,‘’)

    char类型的值,mysql可以不加引号,但是pg必须加单引号

    mapper.xml文件里,搜索status = 0 ,改为 status = '0'

    搜索`query` ,换为query

    全局搜索database(),换为CURRENT_SCHEMA()

    xml里搜索sysdate()函数,换为now()

    三 加自增序列

    凡是有自增主键的表,都要加自增序列

    CREATE SEQUENCE sys_user_id_seq
    	START WITH 3
    	INCREMENT BY 1
    	NO MINVALUE
    	NO MAXVALUE 
    	CACHE 1;
    	
    -- 设置表某个字段自增
    alter table sys_user alter column user_id set default nextval('sys_user_id_seq');
    
    -- 从当前最大id依次递增
    --select setval('sys_user_id_seq',(select max(user_id) from sys_user));
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    CREATE SEQUENCE sys_oper_log_id_seq
    	START WITH 3
    	INCREMENT BY 1
    	NO MINVALUE
    	NO MAXVALUE 
    	CACHE 1;
    
    -- 设置表某个字段自增
    alter table sys_oper_log alter column oper_id set default nextval('sys_oper_log_id_seq');
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    -- 从当前最大id依次递增
    --select setval('sys_oper_log_id_seq',(select max(oper_id) from sys_oper_log));
    CREATE SEQUENCE sys_role_id_seq
    	START WITH 3
    	INCREMENT BY 1
    	NO MINVALUE
    	NO MAXVALUE 
    	CACHE 1;
    
    -- 设置表某个字段自增
    alter table sys_role alter column role_id set default nextval('sys_role_id_seq');
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    CREATE SEQUENCE sys_notice_id_seq
    	START WITH 3
    	INCREMENT BY 1
    	NO MINVALUE
    	NO MAXVALUE 
    	CACHE 1;
    
    -- 设置表某个字段自增
    alter table sys_notice alter column notice_id set default nextval('sys_notice_id_seq');
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    CREATE SEQUENCE sys_dict_type_id_seq
    	START WITH 11
    	INCREMENT BY 1
    	NO MINVALUE
    	NO MAXVALUE 
    	CACHE 1;
    
    -- 设置表某个字段自增
    alter table sys_dict_type alter column dict_id set default nextval('sys_dict_type_id_seq');
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    CREATE SEQUENCE sys_dept_id_seq
    	START WITH 11
    	INCREMENT BY 1
    	NO MINVALUE
    	NO MAXVALUE 
    	CACHE 1;
    
    -- 设置表某个字段自增
    alter table sys_dept alter column dept_id set default nextval('sys_dept_id_seq');
    
    SELECT 'CREATE SEQUENCE ' || sequence_name || ' START ' ||  start_value || ';' from information_schema.sequences;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    CREATE SEQUENCE gen_table_id_seq
    	START WITH 1
    	INCREMENT BY 1
    	NO MINVALUE
    	NO MAXVALUE 
    	CACHE 1;
    
    -- 设置表某个字段自增
    alter table gen_table alter column table_id set default nextval('gen_table_id_seq');
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    CREATE SEQUENCE gen_table_column_id_seq
    	START WITH 1
    	INCREMENT BY 1
    	NO MINVALUE
    	NO MAXVALUE 
    	CACHE 1;
    
    -- 设置表某个字段自增
    alter table gen_table_column alter column column_id set default nextval('gen_table_column_id_seq');
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    CREATE SEQUENCE sys_post_id_seq
    	START WITH 5
    	INCREMENT BY 1
    	NO MINVALUE
    	NO MAXVALUE 
    	CACHE 1;
    
    -- 设置表某个字段自增
    alter table sys_post alter column post_id set default nextval('sys_post_id_seq');
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    CREATE SEQUENCE sys_dict_data_code_seq
    	START WITH 30
    	INCREMENT BY 1
    	NO MINVALUE
    	NO MAXVALUE 
    	CACHE 1;
    
    -- 设置表某个字段自增
    alter table sys_dict_data alter column dict_code set default nextval('sys_dict_data_code_seq');
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    查询序列

    SELECT 'CREATE SEQUENCE ' || sequence_name || ' START ' ||  start_value || ';' from information_schema.sequences;
    
    • 1

    删除序列

    DROP SEQUENCE sys_oper_log_id_seq
    
    • 1

    四 加默认值、加引号

    凡是之前是char类型的字段,并且有默认值的,都需要在navicat里添加默认值,如sys_user表、sys_role、sys_dept表的del_flag、status字段,设置默认值,注意,要加引号。sys_menu、sys_post、sys_notice、sys_loggininfo、sys_job_log、sys_dict_type、sys_dict_data表的status字段,设置默认值0,加引号。

    在这里插入图片描述

    五 改代码

    SysRole.java里的menuCheckStrictly、deptCheckStrictly改为int类型,index.vue里的menuCheckStrictly、deptCheckStrictly,由true改为1,搜索vue文件里的“父子联动”,注释掉。

    GenTableMapper.xml里的id=“selectDbTableList”,改为下边这种

     <select id="selectDbTableList" parameterType="GenTable" resultMap="GenTableResult">
            select * from information_schema.tables
            where table_schema = (select CURRENT_SCHEMA())
            AND table_name NOT LIKE 'qrtz_%' AND table_name NOT LIKE 'gen_%'
            AND table_name NOT IN (select table_name from gen_table)
            <if test="tableName != null and tableName != ''">
                AND lower(table_name) like lower(concat('%', #{tableName}, '%'))
            if>
            
    select>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
  • 相关阅读:
    十二、 Mysql - 主从复制 - 半同步复制
    java计算机毕业设计航空订票管理系统源程序+mysql+系统+lw文档+远程调试
    【附源码】计算机毕业设计JAVA中小学教务管理平台
    tomcat 理解请求转发 221108
    计算机毕业设计之java+ssm基于个人需求和地域特色的外卖推荐系统
    MySQL索引事务——小记
    亲测可用的RT1052+FreeRTOS10.3移植CmBacktrace方法——2022.11.12
    实验室专利书写指南
    使用MySQL,请善用 JSON 这张牌
    JS-函数
  • 原文地址:https://blog.csdn.net/qq_33417321/article/details/134102956