const fs = require('fs') const path = require('path') const SQL_FILE = process.argv[2] || path.join(__dirname, '../sql/create-customer-tag-cs1.sql') const DB = { host: process.env.DB_HOST || 'cq-cdb-8fjmemkb.sql.tencentcdb.com', port: Number(process.env.DB_PORT || 27220), user: process.env.DB_USER || 'root', password: process.env.DB_PASSWORD || 'Ylrz_1q2w3e4r5t6y', database: process.env.DB_NAME || 'fs_tenant_cs1', multipleStatements: false } function loadStatements(filePath) { const raw = fs.readFileSync(filePath, 'utf8') return raw .split(';') .map(s => s.trim()) .filter(s => s && !s.split('\n').every(line => !line.trim() || line.trim().startsWith('--'))) } async function main() { const mysql = require('mysql2/promise') const conn = await mysql.createConnection(DB) const statements = loadStatements(SQL_FILE) console.log('Target DB:', `${DB.host}:${DB.port}/${DB.database}`) console.log('SQL file:', SQL_FILE) console.log('Statements:', statements.length) try { for (const stmt of statements) { const [result] = await conn.query(stmt) console.log(`${stmt.replace(/\s+/g, ' ').slice(0, 80)}... -> affectedRows=${result.affectedRows || 0}`) } // 验证表是否创建成功 const [rows] = await conn.query("SHOW TABLES LIKE 'customer_tag'") if (rows.length > 0) { console.log('SUCCESS: customer_tag 表已创建/存在') const [cols] = await conn.query('DESCRIBE customer_tag') console.log('表结构:') cols.forEach(c => console.log(` ${c.Field} | ${c.Type} | ${c.Null} | ${c.Key}`)) } else { console.log('FAILED: customer_tag 表未创建') process.exit(1) } console.log('Done.') } finally { await conn.end() } } main().catch(err => { console.error('FAILED:', err.message || err) process.exit(1) })