切换为数据库自增 ID
ContiNew Admin 在 v2.4.0 版本前仅支持 MySQL 数据库,从该版本开始启动了多数据库适配计划(目前已额外支持 PostgreSQL)。为确保跨数据库兼容性,框架默认采用分布式 ID 生成方案 CosId 作为主键生成策略。
如果您的项目:
- 仅使用 MySQL 数据库
- 业务场景简单,不需要分布式 ID 的特性
- 希望保持数据库原生自增 ID 的简洁性
那么可以按照本文档所述步骤,将 ID 生成策略切换为 MySQL 原生自增 ID。
步骤 1:调整 ID 生成策略
修改 application.yml
配置文件中的 MyBatis Plus 配置,调整全局 ID 生成策略,移除 ID 生成器配置项。
yaml
--- ### MyBatis Plus 配置
mybatis-plus:
## 全局配置
global-config:
db-config:
# auto 代表使用数据库自增策略(需要在表中设置好自增约束)
id-type: AUTO
## 扩展配置
extension:
enabled: true
# ID 生成器配置
#id-generator:
# type: COSID
步骤 2:移除 CosId 组件
由于切换为数据库自增 ID 后不再需要分布式 ID 生成器,因此需要移除 CosId 相关配置和依赖。
2.1 移除配置
删除 application.yml
配置文件中与 CosId 相关的所有配置项。
yaml
--- ### CosId 配置
#cosid:
#...
2.2 移除依赖
删除 continew-common/pom.xml
文件中的 CosId 依赖:
xml
<!-- CosId(通用、灵活、高性能的分布式 ID 生成器) -->
<dependency>
<groupId>me.ahoo.cosid</groupId>
<artifactId>cosid-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>me.ahoo.cosid</groupId>
<artifactId>cosid-spring-redis</artifactId>
</dependency>
步骤三:调整 Liquibase SQL 脚本
框架默认提供的 MySQL 建表脚本(位于 continew-server/.../resources/db/changelog/mysql
目录下)中已保留了 AUTO_INCREMENT
约束配置,因此在切换为自增 ID 策略时,通常不需要对建表脚本进行额外修改。
3.1 确认自增配置
建议检查脚本中的表定义,确保主键列已正确配置 AUTO_INCREMENT
约束,例如:
sql
CREATE TABLE `sys_user` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
-- 其他字段...
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
3.2 清理示例数据(可选)
项目中包含部分示例数据,建议删除或调整这些数据,确保它们符合自增 ID 的生成规则。
完成验证
完成上述配置后,启动项目并进行如下验证:
- 新增数据时,检查数据库表是否正确生成自增 ID
- 确认系统功能正常,没有出现 ID 生成相关的错误
- 监控日志,确保没有与 CosId 相关的错误或警告信息