apply-lobster-execution-config-cleanup.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. const mysql = require('mysql2/promise')
  2. const fs = require('fs')
  3. const path = require('path')
  4. const DB_CFG = {
  5. host: 'cq-cdb-8fjmemkb.sql.tencentcdb.com',
  6. port: 27220,
  7. user: 'root',
  8. password: 'Ylrz_1q2w3e4r5t6y',
  9. multipleStatements: true
  10. }
  11. const MIGRATION_SQL = fs.readFileSync(
  12. path.join(__dirname, '../../java/fs-agent/src/main/resources/db/migration/tenant/V20260623_01__lobster_execution_config_drop_task_policy.sql'),
  13. 'utf8'
  14. )
  15. function dbNameFromUrl(url) {
  16. if (!url) return null
  17. const m = String(url).match(/\/([^/?]+)(?:\?|$)/)
  18. return m ? m[1] : null
  19. }
  20. async function applyMigration(database) {
  21. const conn = await mysql.createConnection({ ...DB_CFG, database })
  22. await conn.query(MIGRATION_SQL)
  23. const [cols] = await conn.query(
  24. "SHOW COLUMNS FROM lobster_execution_config LIKE 'enable_%'"
  25. )
  26. await conn.end()
  27. return { database, legacyCols: cols.length }
  28. }
  29. async function main() {
  30. const masterConn = await mysql.createConnection({ ...DB_CFG, database: 'ylrz_saas' })
  31. const dbs = new Set()
  32. try {
  33. const [tenants] = await masterConn.query(
  34. 'SELECT id, tenant_code, db_url FROM tenant_info WHERE db_url IS NOT NULL AND db_url != \'\''
  35. )
  36. for (const t of tenants) {
  37. const name = dbNameFromUrl(t.db_url)
  38. if (name) dbs.add(name)
  39. }
  40. } catch (e) {
  41. console.warn('tenant_info query skipped:', e.message)
  42. }
  43. await masterConn.end()
  44. for (const db of dbs) {
  45. try {
  46. const r = await applyMigration(db)
  47. console.log(`${db}: legacy_task_policy_cols=${r.legacyCols} (0=OK)`)
  48. } catch (e) {
  49. console.error(`${db}: ERROR ${e.message}`)
  50. }
  51. }
  52. }
  53. main().catch(e => {
  54. console.error(e)
  55. process.exit(1)
  56. })