#!/usr/bin/env python # -*- coding: utf-8 -*- """ 数据库初始化脚本 用于手动创建或重置数据库表 """ from app import app from extensions import db import models def init_database(): """初始化数据库表""" with app.app_context(): print("🔧 开始初始化数据库...") # 创建所有表 db.create_all() # 检查表是否创建成功 from sqlalchemy import inspect inspector = inspect(db.engine) tables = inspector.get_table_names() print(f"\n✅ 数据库表已创建,共 {len(tables)} 张表:") for table in tables: print(f" - {table}") print("\n📊 表结构详情:") for table_name in tables: columns = inspector.get_columns(table_name) print(f"\n{table_name}:") for col in columns: print(f" {col['name']} ({col['type']})") def drop_all_tables(): """删除所有表(慎用)""" with app.app_context(): print("⚠️ 警告:即将删除所有数据库表!") confirm = input("确认删除?输入 yes 继续: ") if confirm.lower() == 'yes': db.drop_all() print("✅ 所有表已删除") else: print("❌ 操作已取消") if __name__ == '__main__': import sys if len(sys.argv) > 1 and sys.argv[1] == '--drop': drop_all_tables() else: init_database()