Files
AIclinicalresearch/backend/prisma/manual-migrations/run-migration-002.ts
HaHafeng e59676342a docs(pkb): Add development records and update system status
Summary:
- Add PKB module development record for 2026-01-07
- Create PKB module status document (00-模块当前状态与开发指南.md)
- Update system status document to v2.7

Documents added:
- docs/03-业务模块/PKB-个人知识库/06-开发记录/2026-01-07_PKB模块前端V3设计实现.md
- docs/03-业务模块/PKB-个人知识库/00-模块当前状态与开发指南.md

Documents updated:
- docs/00-系统总体设计/00-系统当前状态与开发指南.md

PKB module progress: 75% complete
- Frontend Dashboard: 90%
- Frontend Workspace: 85%
- 3 work modes implemented
- Batch processing API pending debug
2026-01-07 10:35:03 +08:00

116 lines
2.5 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* 执行回滚迁移脚本
*
* 删除业务表中的任务管理字段,统一由 platform_schema.job 管理
*/
import { PrismaClient } from '@prisma/client';
import * as fs from 'fs';
import * as path from 'path';
import { fileURLToPath } from 'url';
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const prisma = new PrismaClient();
async function runMigration() {
console.log('🚀 开始执行回滚迁移...\n');
try {
// 读取 SQL 文件
const sqlPath = path.join(__dirname, '002_rollback_to_platform_only.sql');
const sql = fs.readFileSync(sqlPath, 'utf-8');
console.log('📄 SQL 文件已读取\n');
// 分段执行(按 -- ========== 分割)
const sections = sql.split(/-- ={40,}/);
for (let i = 0; i < sections.length; i++) {
const section = sections[i].trim();
if (!section || section.startsWith('/**')) continue;
console.log(`📦 执行第 ${i} 段...\n`);
// 分行执行(按分号分割)
const statements = section
.split(';')
.map(s => s.trim())
.filter(s => s && !s.startsWith('--'));
for (const statement of statements) {
if (statement.length > 10) {
try {
await prisma.$executeRawUnsafe(statement);
console.log(` ✅ 执行成功: ${statement.substring(0, 60)}...`);
} catch (error: any) {
// 忽略某些非致命错误
if (error.message.includes('does not exist')) {
console.log(` ⚠️ 字段不存在(已是正确状态): ${error.message}`);
} else if (error.message.includes('✅')) {
console.log(` ${error.message}`);
} else {
throw error;
}
}
}
}
}
console.log('\n🎉 回滚迁移执行成功!');
console.log('\n📊 验证结果:');
console.log(' ✅ ASL 业务表:已删除 6 个任务管理字段');
console.log(' ✅ DC 业务表:保持原状(无需添加)');
console.log(' ✅ Platform 层job 表统一管理所有任务');
} catch (error) {
console.error('\n❌ 迁移失败:', error);
throw error;
} finally {
await prisma.$disconnect();
}
}
runMigration()
.then(() => {
console.log('\n✅ 完成');
process.exit(0);
})
.catch((error) => {
console.error('\n❌ 错误:', error);
process.exit(1);
});