"""migrations/seed.py — 初始化默认用户和示例数据(仅在空库时执行)""" from datetime import date def migrate_seed_users(): """初始化默认用户和工作台权限(仅空库时执行)""" from db import db, _exec, one from werkzeug.security import generate_password_hash conn = db() try: if one(conn, "SELECT id FROM users LIMIT 1"): return # 已有用户,跳过 default_users = [ ("qiukai", "yxcowork2026", "qiukai", "admin"), ("kepu", "kepu123", "科普负责人", "opc_owner"), ("keyan", "keyan123", "科研负责人", "opc_owner"), ("yihuan", "yihuan123", "医患负责人", "opc_owner"), ("mcn", "mcn123", "MCN负责人", "opc_owner"), ("wuji", "wuji123", "无界负责人", "opc_owner"), ] for username, pwd, display, role in default_users: _exec(conn, "INSERT INTO users (username, password_hash, display_name, role, created_at) VALUES (?,?,?,?,?)", (username, generate_password_hash(pwd, "pbkdf2:sha256"), display, role, date.today().isoformat())) # 绑定工作台 tenant_map = [ ("kepu", "科普·无界"), ("keyan", "科研·无界"), ("yihuan", "医患·无界"), ("mcn", "MCN·无界"), ("wuji", "学会·无界"), ] for uname, tenant in tenant_map: u = one(conn, "SELECT id FROM users WHERE username=?", (uname,)) if u: _exec(conn, "INSERT INTO user_tenants (user_id, tenant) VALUES (?,?)", (u["id"], tenant)) conn.commit() print("[migrate] 默认用户已初始化") finally: conn.close() def migrate_seed_demo_data(): """填充初始示例数据(仅在空库时执行)""" from db import db, one from migrations.seed_data import seed_db conn = db() try: if one(conn, "SELECT id FROM sales_leads LIMIT 1"): return # 已有数据,跳过 finally: conn.close() seed_db() print("[migrate] 示例数据已填充")