fix(server): align logic-delete config with boolean deleted columns

This commit is contained in:
2026-08-01 14:14:21 +08:00
parent fc990bc624
commit a8587ad08f
2 changed files with 30 additions and 2 deletions

View File

@@ -0,0 +1,27 @@
-- 将平台表system_*/infra_* 等)的 deleted 列从整数规范化为 BOOLEAN
-- 与业务表education_*/pay_*/product_* 等及全局逻辑删除配置true/false保持一致。
-- 背景:业务表迁移均按 BOOLEAN 创建 deleted而框架全局配置此前为 0/1
-- 导致 MyBatis-Plus 生成 "deleted = 0" 在 BOOLEAN 列上报
-- "operator does not exist: boolean = integer"。
-- 方案:将逻辑删除配置改为 true/false并把平台表的整数 deleted 转换为 BOOLEAN。
DO $$
DECLARE
r record;
BEGIN
FOR r IN
SELECT table_name
FROM information_schema.columns
WHERE table_schema = 'public'
AND column_name = 'deleted'
AND data_type IN ('integer', 'smallint')
ORDER BY table_name
LOOP
EXECUTE format(
'ALTER TABLE %I ALTER COLUMN deleted DROP DEFAULT; '
|| 'ALTER TABLE %I ALTER COLUMN deleted TYPE boolean USING (deleted <> 0); '
|| 'ALTER TABLE %I ALTER COLUMN deleted SET DEFAULT false; '
|| 'ALTER TABLE %I ALTER COLUMN deleted SET NOT NULL;',
r.table_name, r.table_name, r.table_name, r.table_name);
END LOOP;
END;
$$;

View File

@@ -62,8 +62,8 @@ mybatis-plus:
# id-type: AUTO # 自增 ID适合 MySQL 等直接自增的数据库
# id-type: INPUT # 用户输入 ID适合 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库
# id-type: ASSIGN_ID # 分配 ID默认使用雪花算法。注意Oracle、PostgreSQL、Kingbase、DB2、H2 数据库时,需要去除实体类上的 @KeySequence 注解
logic-delete-value: 1 # 逻辑已删除值(默认为 1)
logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)
logic-delete-value: true # 逻辑已删除值:项目 PostgreSQL 表 deleted 均为 BOOLEAN
logic-not-delete-value: false # 逻辑未删除值:项目 PostgreSQL 表 deleted 均为 BOOLEAN
banner: false # 关闭控制台的 Banner 打印
type-aliases-package: ${yudao.info.base-package}.module.*.dal.dataobject
encryptor:
@@ -271,6 +271,7 @@ yudao:
yudao:
education:
enabled: true # 恭学教育模块开关:控制 /education/** 管理端接口的注册
catalog-mode: JAVA_READ # 题库数据源模式JAVA_READ 走本地 PostgreSQL支持创作/发布SCALAR_READ 仅读旧数据源
info:
version: 1.0.0
base-package: cn.iocoder.yudao