在准备环境前提交次全部更改。
This commit is contained in:
73
scripts/migrate/fix_remaining.py
Normal file
73
scripts/migrate/fix_remaining.py
Normal file
@@ -0,0 +1,73 @@
|
||||
"""
|
||||
修复并执行之前失败的 DDL/种子:
|
||||
1. etl_feiqiu: app.sql(视图已修复)
|
||||
2. etl_feiqiu: 种子数据(schema 引用已修复)
|
||||
3. zqyy_app: init.sql(BOM 已移除)
|
||||
"""
|
||||
import os
|
||||
import sys
|
||||
import psycopg2
|
||||
|
||||
DB_HOST = "100.64.0.4"
|
||||
DB_PORT = 5432
|
||||
DB_USER = "local-Python"
|
||||
DB_PASSWORD = "Neo-local-1991125"
|
||||
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
|
||||
|
||||
def execute_sql_file(conn, filepath, label=""):
|
||||
full_path = os.path.join(BASE_DIR, filepath)
|
||||
if not os.path.exists(full_path):
|
||||
print(f" [SKIP] 文件不存在: {filepath}")
|
||||
return False
|
||||
with open(full_path, "r", encoding="utf-8-sig") as f:
|
||||
sql = f.read()
|
||||
if not sql.strip():
|
||||
print(f" [SKIP] 文件为空: {filepath}")
|
||||
return False
|
||||
try:
|
||||
cur = conn.cursor()
|
||||
cur.execute(sql)
|
||||
conn.commit()
|
||||
print(f" [OK] {label or filepath}")
|
||||
return True
|
||||
except Exception as e:
|
||||
conn.rollback()
|
||||
print(f" [FAIL] {label or filepath}: {e}")
|
||||
return False
|
||||
|
||||
|
||||
def main():
|
||||
print("=== 修复 etl_feiqiu 剩余项 ===")
|
||||
conn_etl = psycopg2.connect(
|
||||
host=DB_HOST, port=DB_PORT, user=DB_USER,
|
||||
password=DB_PASSWORD, dbname="etl_feiqiu"
|
||||
)
|
||||
conn_etl.autocommit = False
|
||||
|
||||
# app.sql 视图(已修复列名)
|
||||
execute_sql_file(conn_etl, "db/etl_feiqiu/schemas/app.sql", "app schema(视图已修复)")
|
||||
|
||||
# 种子数据(schema 引用已修复)
|
||||
execute_sql_file(conn_etl, "db/etl_feiqiu/seeds/seed_ods_tasks.sql", "种子:ODS 任务")
|
||||
execute_sql_file(conn_etl, "db/etl_feiqiu/seeds/seed_scheduler_tasks.sql", "种子:调度任务")
|
||||
# seed_dws_config.sql 整体被注释,跳过
|
||||
execute_sql_file(conn_etl, "db/etl_feiqiu/seeds/seed_index_parameters.sql", "种子:指数参数")
|
||||
conn_etl.close()
|
||||
|
||||
print("\n=== 修复 zqyy_app 剩余项 ===")
|
||||
conn_app = psycopg2.connect(
|
||||
host=DB_HOST, port=DB_PORT, user=DB_USER,
|
||||
password=DB_PASSWORD, dbname="zqyy_app"
|
||||
)
|
||||
conn_app.autocommit = False
|
||||
|
||||
# init.sql(BOM 已移除)
|
||||
execute_sql_file(conn_app, "db/zqyy_app/schemas/init.sql", "zqyy_app schema(BOM 已修复)")
|
||||
conn_app.close()
|
||||
|
||||
print("\n完成。")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user