#!/usr/bin/env python3 """ 检查 ODS schema 中的表名 """ import os import psycopg2 from dotenv import load_dotenv def main(): # 加载环境变量 load_dotenv() test_db_dsn = os.environ.get('TEST_DB_DSN') if not test_db_dsn: raise RuntimeError("TEST_DB_DSN 环境变量未设置") print("🔍 检查 ODS schema 中的表") with psycopg2.connect(test_db_dsn) as conn: with conn.cursor() as cur: # 查看 ODS schema 中的所有表 cur.execute(""" SELECT table_name FROM information_schema.tables WHERE table_schema = 'ods' AND table_type = 'BASE TABLE' ORDER BY table_name """) tables = cur.fetchall() print(f"找到 {len(tables)} 个 ODS 表:") for table in tables: table_name = table[0] print(f" {table_name}") # 如果是结算相关的表,显示记录数 if 'settle' in table_name.lower() or 'order' in table_name.lower(): cur.execute(f"SELECT COUNT(*) FROM ods.{table_name}") count = cur.fetchone()[0] print(f" -> {count:,} 条记录") if __name__ == "__main__": main()