""" 检查数据库中的实际数据,查看有哪些 tenant_id 以及对应的数据量 """ import pymysql import os from dotenv import load_dotenv load_dotenv() # 数据库连接配置 DB_CONFIG = { 'host': os.getenv('DB_HOST', '152.136.177.240'), 'port': int(os.getenv('DB_PORT', 5012)), 'user': os.getenv('DB_USER', 'finyx'), 'password': os.getenv('DB_PASSWORD', '6QsGK6MpePZDE57Z'), 'database': os.getenv('DB_NAME', 'finyx'), 'charset': 'utf8mb4' } def check_tenant_data(): """检查各个表中的 tenant_id 数据""" conn = pymysql.connect(**DB_CONFIG) cursor = conn.cursor(pymysql.cursors.DictCursor) try: print("=" * 80) print("检查数据库中的 tenant_id 数据") print("=" * 80) # 1. 检查 f_polic_field 表中的 tenant_id print("\n1. f_polic_field 表中的 tenant_id 分布:") cursor.execute(""" SELECT tenant_id, COUNT(*) as total_count, SUM(CASE WHEN field_type = 1 THEN 1 ELSE 0 END) as input_count, SUM(CASE WHEN field_type = 2 THEN 1 ELSE 0 END) as output_count, SUM(CASE WHEN state = 1 THEN 1 ELSE 0 END) as enabled_count FROM f_polic_field GROUP BY tenant_id ORDER BY tenant_id """) field_tenants = cursor.fetchall() for row in field_tenants: print(f" tenant_id: {row['tenant_id']}") print(f" 总字段数: {row['total_count']}, 输入字段: {row['input_count']}, 输出字段: {row['output_count']}, 启用: {row['enabled_count']}") # 2. 检查 f_polic_file_config 表中的 tenant_id print("\n2. f_polic_file_config 表中的 tenant_id 分布:") cursor.execute(""" SELECT tenant_id, COUNT(*) as total_count, SUM(CASE WHEN state = 1 THEN 1 ELSE 0 END) as enabled_count FROM f_polic_file_config GROUP BY tenant_id ORDER BY tenant_id """) config_tenants = cursor.fetchall() for row in config_tenants: print(f" tenant_id: {row['tenant_id']}") print(f" 总模板数: {row['total_count']}, 启用: {row['enabled_count']}") # 3. 检查 f_polic_file_field 表中的 tenant_id print("\n3. f_polic_file_field 表中的 tenant_id 分布:") cursor.execute(""" SELECT tenant_id, COUNT(*) as total_count, SUM(CASE WHEN state = 1 THEN 1 ELSE 0 END) as enabled_count FROM f_polic_file_field GROUP BY tenant_id ORDER BY tenant_id """) relation_tenants = cursor.fetchall() for row in relation_tenants: print(f" tenant_id: {row['tenant_id']}") print(f" 总关联数: {row['total_count']}, 启用: {row['enabled_count']}") # 4. 检查特定 tenant_id 的详细数据 test_tenant_id = 615873064429507600 print(f"\n4. 检查 tenant_id = {test_tenant_id} 的详细数据:") # 字段数据 cursor.execute(""" SELECT COUNT(*) as count FROM f_polic_field WHERE tenant_id = %s """, (test_tenant_id,)) field_count = cursor.fetchone()['count'] print(f" f_polic_field 表中的字段数: {field_count}") if field_count > 0: cursor.execute(""" SELECT id, name, filed_code, field_type, state FROM f_polic_field WHERE tenant_id = %s LIMIT 10 """, (test_tenant_id,)) sample_fields = cursor.fetchall() print(f" 示例字段(前10条):") for field in sample_fields: print(f" ID: {field['id']}, 名称: {field['name']}, 编码: {field['filed_code']}, 类型: {field['field_type']}, 状态: {field['state']}") # 模板数据 cursor.execute(""" SELECT COUNT(*) as count FROM f_polic_file_config WHERE tenant_id = %s """, (test_tenant_id,)) template_count = cursor.fetchone()['count'] print(f" f_polic_file_config 表中的模板数: {template_count}") # 关联数据 cursor.execute(""" SELECT COUNT(*) as count FROM f_polic_file_field WHERE tenant_id = %s """, (test_tenant_id,)) relation_count = cursor.fetchone()['count'] print(f" f_polic_file_field 表中的关联数: {relation_count}") # 5. 检查所有不同的 tenant_id print("\n5. 所有表中出现的 tenant_id 汇总:") cursor.execute(""" SELECT DISTINCT tenant_id FROM f_polic_field UNION SELECT DISTINCT tenant_id FROM f_polic_file_config UNION SELECT DISTINCT tenant_id FROM f_polic_file_field ORDER BY tenant_id """) all_tenants = cursor.fetchall() print(" 所有 tenant_id 列表:") for row in all_tenants: print(f" {row['tenant_id']}") finally: cursor.close() conn.close() if __name__ == '__main__': check_tenant_data()