# -*- coding: utf-8 -*-
"""修复 admin_users 表中 admin 用户的 site_id（从 1 → 2790685415443269）。

根因：admin 用户创建时 site_id 被设为 1，但 meta.etl_task 中任务注册的
store_id 是 2790685415443269。JWT 中的 site_id 会被注入到 CLI --store-id，
导致 _load_task_config 查询不到任何任务。
"""
import psycopg2

DSN = "postgresql://local-Python:Neo-local-1991125@100.64.0.4:5432/test_zqyy_app"
CORRECT_SITE_ID = 2790685415443269

def main():
    conn = psycopg2.connect(DSN, connect_timeout=10)
    try:
        with conn.cursor() as cur:
            # 先查看当前状态
            cur.execute("SELECT id, username, site_id FROM admin_users")
            rows = cur.fetchall()
            print("修复前:")
            for r in rows:
                print(f"  id={r[0]} username={r[1]} site_id={r[2]}")

            # 更新 site_id
            cur.execute(
                "UPDATE admin_users SET site_id = %s WHERE site_id = 1",
                (CORRECT_SITE_ID,),
            )
            updated = cur.rowcount
            conn.commit()
            print(f"\n已更新 {updated} 条记录的 site_id → {CORRECT_SITE_ID}")

            # 验证
            cur.execute("SELECT id, username, site_id FROM admin_users")
            rows = cur.fetchall()
            print("\n修复后:")
            for r in rows:
                print(f"  id={r[0]} username={r[1]} site_id={r[2]}")
    finally:
        conn.close()

if __name__ == "__main__":
    main()
