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:
@@ -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')) {
|
||||
|
||||
@@ -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('历史表已存在');
|
||||
|
||||
@@ -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");
|
||||
`;
|
||||
|
||||
@@ -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('历史表已存在');
|
||||
|
||||
Reference in New Issue
Block a user