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 '更新时间',
|
update_time DATETIME NULL COMMENT '更新时间',
|
||||||
is_active TINYINT NULL COMMENT '是否启用'
|
is_active TINYINT NULL COMMENT '是否启用'
|
||||||
)
|
)
|
||||||
|
UNIQUE KEY(id)
|
||||||
DISTRIBUTED BY HASH(id) BUCKETS 1
|
DISTRIBUTED BY HASH(id) BUCKETS 1
|
||||||
PROPERTIES("replication_num" = "1")
|
PROPERTIES("replication_num" = "1")
|
||||||
`);
|
`);
|
||||||
console.log('配置表创建成功');
|
console.log('配置表创建成功(UNIQUE KEY 模型)');
|
||||||
} catch (tableError: any) {
|
} catch (tableError: any) {
|
||||||
// 如果表已存在,忽略错误
|
// 如果表已存在,忽略错误
|
||||||
if (tableError.message && tableError.message.includes('already exists')) {
|
if (tableError.message && tableError.message.includes('already exists')) {
|
||||||
|
|||||||
@@ -30,10 +30,11 @@ export async function GET(request: NextRequest) {
|
|||||||
create_time DATETIME NULL COMMENT '生成时间',
|
create_time DATETIME NULL COMMENT '生成时间',
|
||||||
status TINYINT NULL COMMENT '状态'
|
status TINYINT NULL COMMENT '状态'
|
||||||
)
|
)
|
||||||
|
UNIQUE KEY(id)
|
||||||
DISTRIBUTED BY HASH(id) BUCKETS 1
|
DISTRIBUTED BY HASH(id) BUCKETS 1
|
||||||
PROPERTIES("replication_num" = "1")
|
PROPERTIES("replication_num" = "1")
|
||||||
`);
|
`);
|
||||||
console.log('历史表创建成功');
|
console.log('历史表创建成功(UNIQUE KEY 模型)');
|
||||||
} catch (tableError: any) {
|
} catch (tableError: any) {
|
||||||
if (tableError.message && tableError.message.includes('already exists')) {
|
if (tableError.message && tableError.message.includes('already exists')) {
|
||||||
console.log('历史表已存在');
|
console.log('历史表已存在');
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import pool from './db';
|
import pool from './db';
|
||||||
|
|
||||||
// 创建配置表和历史表的SQL语句(Doris兼容)
|
// 创建配置表和历史表的SQL语句(Doris兼容,支持UPDATE)
|
||||||
const createTablesSQL = `
|
const createTablesSQL = `
|
||||||
CREATE TABLE t_daily_report_config (
|
CREATE TABLE t_daily_report_config (
|
||||||
id BIGINT NOT NULL COMMENT '配置ID',
|
id BIGINT NOT NULL COMMENT '配置ID',
|
||||||
@@ -14,6 +14,7 @@ CREATE TABLE t_daily_report_config (
|
|||||||
update_time DATETIME NULL COMMENT '更新时间',
|
update_time DATETIME NULL COMMENT '更新时间',
|
||||||
is_active TINYINT NULL COMMENT '是否启用:0禁用 1启用'
|
is_active TINYINT NULL COMMENT '是否启用:0禁用 1启用'
|
||||||
)
|
)
|
||||||
|
UNIQUE KEY(id)
|
||||||
DISTRIBUTED BY HASH(id) BUCKETS 1
|
DISTRIBUTED BY HASH(id) BUCKETS 1
|
||||||
PROPERTIES("replication_num" = "1");
|
PROPERTIES("replication_num" = "1");
|
||||||
|
|
||||||
@@ -33,6 +34,7 @@ CREATE TABLE t_daily_report_history (
|
|||||||
create_time DATETIME NULL COMMENT '生成时间',
|
create_time DATETIME NULL COMMENT '生成时间',
|
||||||
status TINYINT NULL COMMENT '状态:0失败 1成功'
|
status TINYINT NULL COMMENT '状态:0失败 1成功'
|
||||||
)
|
)
|
||||||
|
UNIQUE KEY(id)
|
||||||
DISTRIBUTED BY HASH(id) BUCKETS 1
|
DISTRIBUTED BY HASH(id) BUCKETS 1
|
||||||
PROPERTIES("replication_num" = "1");
|
PROPERTIES("replication_num" = "1");
|
||||||
`;
|
`;
|
||||||
|
|||||||
@@ -243,10 +243,11 @@ export async function generateBatchReports(configId: number): Promise<ReportResu
|
|||||||
create_time DATETIME NULL COMMENT '生成时间',
|
create_time DATETIME NULL COMMENT '生成时间',
|
||||||
status TINYINT NULL COMMENT '状态'
|
status TINYINT NULL COMMENT '状态'
|
||||||
)
|
)
|
||||||
|
UNIQUE KEY(id)
|
||||||
DISTRIBUTED BY HASH(id) BUCKETS 1
|
DISTRIBUTED BY HASH(id) BUCKETS 1
|
||||||
PROPERTIES("replication_num" = "1")
|
PROPERTIES("replication_num" = "1")
|
||||||
`);
|
`);
|
||||||
console.log('历史表创建成功');
|
console.log('历史表创建成功(UNIQUE KEY 模型)');
|
||||||
} catch (tableError: any) {
|
} catch (tableError: any) {
|
||||||
if (tableError.message && tableError.message.includes('already exists')) {
|
if (tableError.message && tableError.message.includes('already exists')) {
|
||||||
console.log('历史表已存在');
|
console.log('历史表已存在');
|
||||||
|
|||||||
Reference in New Issue
Block a user