45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
#!/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() |