Initial commit: 浼佷笟寰俊 AI 鏈哄櫒浜哄姪鐞?MVP

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
bujie9527
2026-02-05 16:36:32 +08:00
commit 59275ed4dc
126 changed files with 9120 additions and 0 deletions

View File

@@ -0,0 +1,58 @@
#!/usr/bin/env python3
"""
修复 users 表添加缺失的列role、is_active、created_at
用法(在项目根目录):
python deploy/scripts/fix_users_table.py
"""
import os
import sys
sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "..", "backend"))
from dotenv import load_dotenv
load_dotenv(os.path.join(os.path.dirname(__file__), "..", "..", ".env"))
from sqlalchemy import create_engine, text, inspect
DATABASE_URL_SYNC = os.getenv(
"DATABASE_URL_SYNC",
"postgresql://wecom:wecom_secret@localhost:5432/wecom_ai",
)
def main():
engine = create_engine(DATABASE_URL_SYNC)
inspector = inspect(engine)
if not inspector.has_table("users"):
print("users 表不存在,请先执行迁移。")
sys.exit(1)
columns = [c["name"] for c in inspector.get_columns("users")]
print(f"当前 users 表的列: {columns}")
with engine.connect() as conn:
if "role" not in columns:
print("添加 role 列...")
conn.execute(text("ALTER TABLE users ADD COLUMN IF NOT EXISTS role VARCHAR(32) NOT NULL DEFAULT 'admin'"))
conn.commit()
print("✓ role 已添加")
if "is_active" not in columns:
print("添加 is_active 列...")
conn.execute(text("ALTER TABLE users ADD COLUMN IF NOT EXISTS is_active BOOLEAN NOT NULL DEFAULT true"))
conn.commit()
print("✓ is_active 已添加")
if "created_at" not in columns:
print("添加 created_at 列...")
conn.execute(text("ALTER TABLE users ADD COLUMN IF NOT EXISTS created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()"))
conn.commit()
print("✓ created_at 已添加")
print("修复完成。")
if __name__ == "__main__":
main()