前言:
现时看官们对“postgresql自增”大约比较关切,看官们都想要知道一些“postgresql自增”的相关知识。那么小编也在网摘上网罗了一些关于“postgresql自增””的相关知识,希望小伙伴们能喜欢,看官们快快来了解一下吧!开源任务调度框架 XXL-Job 默认是基于 MySQL 数据库开发的,好在它是使用了 MyBatis ,要支持其他数据库,需要改 Mapping 映射文件,建表语句换成其他数据库的。
主要差异表现在四个方面:
建表语句中的主键自增Mapping 中的转义符号分页查询语句时间函数本文介绍 XXL-Job 连接 Postgre 数据库的改造过程。
数据发送第一步,将官方提供的 MySQL 建表语句通过 Navicat 导入 MySQL ,这样可以保证对应版本的建表语句的一致性。
第二步,选中 MySQL 连接下的 xxl-job 数据库,右键“数据传输” ,使用 Navicat 的数据传输功能,将 xxl-job 数据库的表结构传输给对应的 Postgre 连接:
等待完成,这个数据传输会完成创建 SEQUENCE 和表以及基础数据插入的工作,但是不会为自增主键设置默认值。
第三步,在 Postgre 连接下对应的数据库中,创建查询语句,修改所有用到自增主键的表,设置 default 值为自增。
ALTER TABLE "public"."xxl_job_user" alter column ID set default nextval('xxl_job_user_id_seq'::regclass);ALTER TABLE "public"."xxl_job_info" alter column ID set default nextval('xxl_job_info_id_seq'::regclass);ALTER TABLE "public"."xxl_job_log" alter column ID set default nextval('xxl_job_log_id_seq'::regclass);ALTER TABLE "public"."xxl_job_log_report" alter column ID set default nextval('xxl_job_log_report_id_seq'::regclass);ALTER TABLE "public"."xxl_job_logglue" alter column ID set default nextval('xxl_job_logglue_id_seq'::regclass);ALTER TABLE "public"."xxl_job_registry" alter column ID set default nextval('xxl_job_registry_id_seq'::regclass);ALTER TABLE "public"."xxl_job_group" alter column ID set default nextval('xxl_job_group_id_seq'::regclass);
第四步,进入 Postgre 数据库中,右键设计每个表,对 int 类型且 Not Null 的字段设置默认值为 0 。这一步非常关键,因为日志表有几个字段入库时未传值,轮询后更新的,没有默认值,插入 SQL 无法通过 Not Null 的检查而异常。
MyBatisMapping 调整到 mybatis-mapper 文件夹下,修改各个 Mapper 文件,使其适配 Postgre 语法,主要有三个地方:
去掉转义符 ` ,直接用空格替换修改 LIMIT #{offset}, #{pagesize} 为 LIMIT #{pagesize} OFFSET #{offset} ,涉及到查询的地方都需要调整时间函数,如:XxlJobRegistryMapper.xml 文件中 findAll 和 findDead 查询语句,DATE_ADD(#{nowTime},INTERVAL -#{timeout} SECOND) 修改为 ((select NOW())-INTERVAL '${timeout} S') 。数据库连接配置第一步,pom.xml 中添加 Postgre 驱动,maven 官网找最一个较高的版本。
<dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>42.2.19</version> </dependency>
第二步,修改 admin 模块下的 application.properties 文件,数据库连接配置信息改为 Postgrel 。
### xxl-job, datasourcespring.datasource.url=jdbc:postgresql://IP:5432/xxl-jobspring.datasource.username=usernamespring.datasource.password=passwordspring.datasource.driver-class-name=org.postgresql.Driver
检查一遍所有的配置,然后在本机直接启动测试。
启示录本来以为这个开源框架应该是支持所有类型数据库的额呢,验证其他数据库的适配情况时,才发现官网 doc 目录下数据库只有一个 MySQL ,看 issues 说适配需要自己改 mapper 映射文件。
好在它不像 Azkaban 那样把 SQL 集成在代码中,所以就自己改造一下,还是比较顺利的,汇总称此文,希望给需要改造的同行一点启发!
本站所有软件信息均由用户上传发布,版权归原著所有。如有侵权/违规内容,敬请来信告知邮箱:764327034@qq.com,我们将及时撤销! 转载请注明出处:https://www.ssyg068.com/kuaixun/1838.html
发表回复
评论列表(0条)