run-tenant-sql-cs1.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. const fs = require('fs')
  2. const path = require('path')
  3. const SQL_FILE = process.argv[2] || path.join(__dirname, '../sql/create-customer-tag-cs1.sql')
  4. const DB = {
  5. host: process.env.DB_HOST || 'cq-cdb-8fjmemkb.sql.tencentcdb.com',
  6. port: Number(process.env.DB_PORT || 27220),
  7. user: process.env.DB_USER || 'root',
  8. password: process.env.DB_PASSWORD || 'Ylrz_1q2w3e4r5t6y',
  9. database: process.env.DB_NAME || 'fs_tenant_cs1',
  10. multipleStatements: false
  11. }
  12. function loadStatements(filePath) {
  13. const raw = fs.readFileSync(filePath, 'utf8')
  14. return raw
  15. .split(';')
  16. .map(s => s.trim())
  17. .filter(s => s && !s.split('\n').every(line => !line.trim() || line.trim().startsWith('--')))
  18. }
  19. async function main() {
  20. const mysql = require('mysql2/promise')
  21. const conn = await mysql.createConnection(DB)
  22. const statements = loadStatements(SQL_FILE)
  23. console.log('Target DB:', `${DB.host}:${DB.port}/${DB.database}`)
  24. console.log('SQL file:', SQL_FILE)
  25. console.log('Statements:', statements.length)
  26. try {
  27. for (const stmt of statements) {
  28. const [result] = await conn.query(stmt)
  29. console.log(`${stmt.replace(/\s+/g, ' ').slice(0, 80)}... -> affectedRows=${result.affectedRows || 0}`)
  30. }
  31. // 验证表是否创建成功
  32. const [rows] = await conn.query("SHOW TABLES LIKE 'customer_tag'")
  33. if (rows.length > 0) {
  34. console.log('SUCCESS: customer_tag 表已创建/存在')
  35. const [cols] = await conn.query('DESCRIBE customer_tag')
  36. console.log('表结构:')
  37. cols.forEach(c => console.log(` ${c.Field} | ${c.Type} | ${c.Null} | ${c.Key}`))
  38. } else {
  39. console.log('FAILED: customer_tag 表未创建')
  40. process.exit(1)
  41. }
  42. console.log('Done.')
  43. } finally {
  44. await conn.end()
  45. }
  46. }
  47. main().catch(err => {
  48. console.error('FAILED:', err.message || err)
  49. process.exit(1)
  50. })