| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- // 查看 company 表结构和 tenant_info 表,了解租户和公司的关系
- const mysql = require('mysql2/promise')
- const DB = {
- host: 'cq-cdb-8fjmemkb.sql.tencentcdb.com',
- port: 27220,
- user: 'root',
- password: 'Ylrz_1q2w3e4r5t6y',
- multipleStatements: false
- }
- async function main() {
- const conn = await mysql.createConnection(DB)
- try {
- // 1. 查看 tenant_info 表结构
- const [tenantCols] = await conn.query("SELECT COLUMN_NAME, DATA_TYPE FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='ylrz_saas' AND TABLE_NAME='tenant_info' ORDER BY ORDINAL_POSITION")
- console.log('=== tenant_info 表结构 ===')
- tenantCols.forEach(c => console.log(` ${c.COLUMN_NAME} (${c.DATA_TYPE})`))
- // 2. 查看 company 表结构(主库)
- const [companyCols] = await conn.query("SELECT COLUMN_NAME, DATA_TYPE FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='ylrz_saas' AND TABLE_NAME='company' ORDER BY ORDINAL_POSITION")
- console.log('\n=== company 表结构 (主库 ylrz_saas) ===')
- companyCols.forEach(c => console.log(` ${c.COLUMN_NAME} (${c.DATA_TYPE})`))
- // 3. 查看租户列表
- const [tenants] = await conn.query("SELECT id, tenant_code, tenant_name, db_name, status FROM ylrz_saas.tenant_info LIMIT 10")
- console.log('\n=== 租户列表 ===')
- tenants.forEach(t => console.log(` id=${t.id}, code=${t.tenant_code}, name=${t.tenant_name}, db=${t.db_name}`))
- // 4. 查看租户库里的 company 表
- const [tenantDbs] = await conn.query("SHOW DATABASES LIKE 'fs_tenant_%'")
- const firstTenantDb = tenantDbs[0] ? Object.values(tenantDbs[0])[0] : null
- if (firstTenantDb) {
- const [tenantCompanyCols] = await conn.query(`SELECT COLUMN_NAME, DATA_TYPE FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=? AND TABLE_NAME='company' ORDER BY ORDINAL_POSITION`, [firstTenantDb])
- console.log(`\n=== company 表结构 (租户库 ${firstTenantDb}) ===`)
- tenantCompanyCols.forEach(c => console.log(` ${c.COLUMN_NAME} (${c.DATA_TYPE})`))
- // 查看租户库里的 company 数据
- const [companies] = await conn.query(`SELECT company_id, company_name FROM \`${firstTenantDb}\`.company WHERE is_del = 0 LIMIT 10`)
- console.log(`\n=== ${firstTenantDb} 的 company 列表 ===`)
- companies.forEach(c => console.log(` company_id=${c.company_id}, name=${c.company_name}`))
- // 查看 lobster_user_profile 的 company_id 分布
- const [profileDist] = await conn.query(`SELECT company_id, COUNT(*) as cnt FROM \`${firstTenantDb}\`.lobster_user_profile WHERE deleted=0 GROUP BY company_id`)
- console.log(`\n=== ${firstTenantDb} 的 lobster_user_profile company_id 分布 ===`)
- profileDist.forEach(p => console.log(` company_id=${p.company_id}, count=${p.cnt}`))
- }
- } finally {
- await conn.end()
- }
- }
- main().catch(err => {
- console.error('FAILED:', err.message || err)
- process.exit(1)
- })
|