refactor: 将 ORM 实体类 ID 改为数据库自增

- 修改 BaseEntity 的 @TableId 从 ASSIGN_ID 改为 AUTO
- 创建 V11 迁移脚本将所有表的 id 列改为 AUTO_INCREMENT

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
En 2026-03-16 15:30:49 +08:00
parent 7e96b80a38
commit 2e68b99975
2 changed files with 239 additions and 2 deletions

View File

@ -23,10 +23,10 @@ import java.time.LocalDateTime;
public abstract class BaseEntity {
/**
* 主键 ID雪花算法生成
* 主键 ID数据库自增
*/
@Schema(description = "主键 ID")
@TableId(type = IdType.ASSIGN_ID)
@TableId(type = IdType.AUTO)
private Long id;
/**

View File

@ -0,0 +1,237 @@
-- =====================================================
-- 幼儿园阅读平台数据库迁移脚本
-- 版本V11
-- 创建时间2026-03-16
-- 描述:将所有表的 id 列改为数据库自增
-- =====================================================
-- 说明:由于 MySQL 不支持直接修改现有列为自增,
-- 需要重建每张表的 id 列
-- -----------------------------------------------------
-- 1. 管理员用户表 (admin_user)
-- -----------------------------------------------------
ALTER TABLE `admin_user`
MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID';
-- -----------------------------------------------------
-- 2. 租户表 (tenant)
-- -----------------------------------------------------
ALTER TABLE `tenant`
MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID';
-- -----------------------------------------------------
-- 3. 教师表 (teacher)
-- -----------------------------------------------------
ALTER TABLE `teacher`
MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID';
-- -----------------------------------------------------
-- 4. 学生表 (student)
-- -----------------------------------------------------
ALTER TABLE `student`
MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID';
-- -----------------------------------------------------
-- 5. 家长表 (parent)
-- -----------------------------------------------------
ALTER TABLE `parent`
MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID';
-- -----------------------------------------------------
-- 6. 班级表 (clazz)
-- -----------------------------------------------------
ALTER TABLE `clazz`
MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID';
-- -----------------------------------------------------
-- 7. 班级教师关联表 (class_teacher)
-- -----------------------------------------------------
ALTER TABLE `class_teacher`
MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID';
-- -----------------------------------------------------
-- 8. 课程表 (course)
-- -----------------------------------------------------
ALTER TABLE `course`
MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID';
-- -----------------------------------------------------
-- 9. 课程套餐表 (course_package)
-- -----------------------------------------------------
ALTER TABLE `course_package`
MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID';
-- -----------------------------------------------------
-- 10. 套餐课程关联表 (course_package_course)
-- -----------------------------------------------------
ALTER TABLE `course_package_course`
MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID';
-- -----------------------------------------------------
-- 11. 主题表 (theme)
-- -----------------------------------------------------
ALTER TABLE `theme`
MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID';
-- -----------------------------------------------------
-- 12. 标签表 (tag)
-- -----------------------------------------------------
ALTER TABLE `tag`
MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID';
-- -----------------------------------------------------
-- 13. 课程版本表 (course_version)
-- -----------------------------------------------------
ALTER TABLE `course_version`
MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID';
-- -----------------------------------------------------
-- 14. 课程资源表 (course_resource)
-- -----------------------------------------------------
ALTER TABLE `course_resource`
MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID';
-- -----------------------------------------------------
-- 15. 课程脚本表 (course_script)
-- -----------------------------------------------------
ALTER TABLE `course_script`
MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID';
-- -----------------------------------------------------
-- 16. 课程脚本页面表 (course_script_page)
-- -----------------------------------------------------
ALTER TABLE `course_script_page`
MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID';
-- -----------------------------------------------------
-- 17. 课程活动表 (course_activity)
-- -----------------------------------------------------
ALTER TABLE `course_activity`
MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID';
-- -----------------------------------------------------
-- 18. 课程课时表 (course_lesson)
-- -----------------------------------------------------
ALTER TABLE `course_lesson`
MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID';
-- -----------------------------------------------------
-- 19. 课时步骤表 (lesson_step)
-- -----------------------------------------------------
ALTER TABLE `lesson_step`
MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID';
-- -----------------------------------------------------
-- 20. 课时步骤资源表 (lesson_step_resource)
-- -----------------------------------------------------
ALTER TABLE `lesson_step_resource`
MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID';
-- -----------------------------------------------------
-- 21. 课时反馈表 (lesson_feedback)
-- -----------------------------------------------------
ALTER TABLE `lesson_feedback`
MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID';
-- -----------------------------------------------------
-- 22. 任务表 (task)
-- -----------------------------------------------------
ALTER TABLE `task`
MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID';
-- -----------------------------------------------------
-- 23. 任务完成表 (task_completion)
-- -----------------------------------------------------
ALTER TABLE `task_completion`
MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID';
-- -----------------------------------------------------
-- 24. 任务目标表 (task_target)
-- -----------------------------------------------------
ALTER TABLE `task_target`
MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID';
-- -----------------------------------------------------
-- 25. 任务模板表 (task_template)
-- -----------------------------------------------------
ALTER TABLE `task_template`
MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID';
-- -----------------------------------------------------
-- 26. 成长记录表 (growth_record)
-- -----------------------------------------------------
ALTER TABLE `growth_record`
MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID';
-- -----------------------------------------------------
-- 27. 通知表 (notification)
-- -----------------------------------------------------
ALTER TABLE `notification`
MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID';
-- -----------------------------------------------------
-- 28. 家长学生关联表 (parent_student)
-- -----------------------------------------------------
ALTER TABLE `parent_student`
MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID';
-- -----------------------------------------------------
-- 29. 学生班级历史表 (student_class_history)
-- -----------------------------------------------------
ALTER TABLE `student_class_history`
MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID';
-- -----------------------------------------------------
-- 30. 学生记录表 (student_record)
-- -----------------------------------------------------
ALTER TABLE `student_record`
MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID';
-- -----------------------------------------------------
-- 31. 租户课程表 (tenant_course)
-- -----------------------------------------------------
ALTER TABLE `tenant_course`
MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID';
-- -----------------------------------------------------
-- 32. 租户套餐表 (tenant_package)
-- -----------------------------------------------------
ALTER TABLE `tenant_package`
MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID';
-- -----------------------------------------------------
-- 33. 系统设置表 (system_setting)
-- -----------------------------------------------------
ALTER TABLE `system_setting`
MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID';
-- -----------------------------------------------------
-- 34. 排课模板表 (schedule_template)
-- -----------------------------------------------------
ALTER TABLE `schedule_template`
MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID';
-- -----------------------------------------------------
-- 35. 排课计划表 (schedule_plan)
-- -----------------------------------------------------
ALTER TABLE `schedule_plan`
MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID';
-- -----------------------------------------------------
-- 36. 资源库表 (resource_library)
-- -----------------------------------------------------
ALTER TABLE `resource_library`
MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID';
-- -----------------------------------------------------
-- 37. 资源项表 (resource_item)
-- -----------------------------------------------------
ALTER TABLE `resource_item`
MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID';
-- -----------------------------------------------------
-- 38. 操作日志表 (operation_log)
-- -----------------------------------------------------
ALTER TABLE `operation_log`
MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID';