const { PrismaClient } = require('@prisma/client') const prisma = new PrismaClient() async function main() { try { // 检查字段是否已存在 const result = await prisma.$queryRaw` SELECT column_name FROM information_schema.columns WHERE table_name = 'material_skus' AND column_name = 'deleted_at' ` if (result.length === 0) { console.log('添加 deleted_at 字段...') await prisma.$executeRaw` ALTER TABLE material_skus ADD COLUMN deleted_at TIMESTAMP ` console.log('✅ deleted_at 字段已添加') } else { console.log('ℹ️ deleted_at 字段已存在') } // 检查索引是否已存在 const indexResult = await prisma.$queryRaw` SELECT indexname FROM pg_indexes WHERE tablename = 'material_skus' AND indexname = 'material_skus_deleted_at_idx' ` if (indexResult.length === 0) { console.log('添加 deleted_at 索引...') await prisma.$executeRaw` CREATE INDEX material_skus_deleted_at_idx ON material_skus(deleted_at) ` console.log('✅ deleted_at 索引已添加') } else { console.log('ℹ️ deleted_at 索引已存在') } console.log('✅ 数据库迁移完成') } catch (error) { console.error('❌ 迁移失败:', error) process.exit(1) } finally { await prisma.$disconnect() } } main()