fix: 修复启用/禁用功能,添加 Doris UNIQUE KEY 支持

核心问题:Doris 只允许更新有 UNIQUE KEY 的表,之前的表不支持 UPDATE 操作

关键修改:
1. 为所有建表语句添加 UNIQUE KEY(id)
2. 修改以下文件的建表语句:
   - config/route.ts(配置表)
   - report/history/route.ts(历史表)
   - init-tables.ts(初始化脚本)
   - report-generator.ts(生成器)

建表语法变更:
- 从:DISTRIBUTED BY HASH(id) BUCKETS 1
- 到:UNIQUE KEY(id) + DISTRIBUTED BY HASH(id) BUCKETS 1

测试结果:
 配置创建成功(HTTP 200)
 配置禁用成功(HTTP 200)
 配置启用成功(HTTP 200)
 所有静态检查通过

Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
This commit is contained in:
user9994793890
2026-07-08 08:43:59 +08:00
parent 26f0ed12f1
commit eebe142787
4 changed files with 9 additions and 4 deletions

View File

@@ -84,10 +84,11 @@ export async function POST(request: NextRequest) {
update_time DATETIME NULL COMMENT '更新时间',
is_active TINYINT NULL COMMENT '是否启用'
)
UNIQUE KEY(id)
DISTRIBUTED BY HASH(id) BUCKETS 1
PROPERTIES("replication_num" = "1")
`);
console.log('配置表创建成功');
console.log('配置表创建成功UNIQUE KEY 模型)');
} catch (tableError: any) {
// 如果表已存在,忽略错误
if (tableError.message && tableError.message.includes('already exists')) {

View File

@@ -30,10 +30,11 @@ export async function GET(request: NextRequest) {
create_time DATETIME NULL COMMENT '生成时间',
status TINYINT NULL COMMENT '状态'
)
UNIQUE KEY(id)
DISTRIBUTED BY HASH(id) BUCKETS 1
PROPERTIES("replication_num" = "1")
`);
console.log('历史表创建成功');
console.log('历史表创建成功UNIQUE KEY 模型)');
} catch (tableError: any) {
if (tableError.message && tableError.message.includes('already exists')) {
console.log('历史表已存在');

View File

@@ -1,6 +1,6 @@
import pool from './db';
// 创建配置表和历史表的SQL语句Doris兼容
// 创建配置表和历史表的SQL语句Doris兼容支持UPDATE
const createTablesSQL = `
CREATE TABLE t_daily_report_config (
id BIGINT NOT NULL COMMENT '配置ID',
@@ -14,6 +14,7 @@ CREATE TABLE t_daily_report_config (
update_time DATETIME NULL COMMENT '更新时间',
is_active TINYINT NULL COMMENT '是否启用0禁用 1启用'
)
UNIQUE KEY(id)
DISTRIBUTED BY HASH(id) BUCKETS 1
PROPERTIES("replication_num" = "1");
@@ -33,6 +34,7 @@ CREATE TABLE t_daily_report_history (
create_time DATETIME NULL COMMENT '生成时间',
status TINYINT NULL COMMENT '状态0失败 1成功'
)
UNIQUE KEY(id)
DISTRIBUTED BY HASH(id) BUCKETS 1
PROPERTIES("replication_num" = "1");
`;

View File

@@ -243,10 +243,11 @@ export async function generateBatchReports(configId: number): Promise<ReportResu
create_time DATETIME NULL COMMENT '生成时间',
status TINYINT NULL COMMENT '状态'
)
UNIQUE KEY(id)
DISTRIBUTED BY HASH(id) BUCKETS 1
PROPERTIES("replication_num" = "1")
`);
console.log('历史表创建成功');
console.log('历史表创建成功UNIQUE KEY 模型)');
} catch (tableError: any) {
if (tableError.message && tableError.message.includes('already exists')) {
console.log('历史表已存在');