# -*- coding: utf-8 -*- """ 数据库安全迁移脚本 只创建缺失的表,不删除现有数据 用于生产环境部署 """ import sys from app import create_app from models import db, Admin def migrate_database(): """安全迁移数据库(不删除数据)""" app = create_app('production') with app.app_context(): print("正在检查数据库表...") # 只创建不存在的表(不会删除数据) db.create_all() print("✓ 数据库表检查完成") # 检查是否存在管理员 admin_count = Admin.query.count() if admin_count == 0: print("\n未找到管理员账号,正在创建默认管理员...") admin = Admin( username='admin', email='admin@example.com', is_active=True ) admin.set_password('admin123') db.session.add(admin) db.session.commit() print("✓ 默认管理员创建成功") print(" 用户名: admin") print(" 密码: admin123") print("\n⚠️ 请立即登录后台修改密码!") else: print(f"\n✓ 已存在 {admin_count} 个管理员账号") print("\n" + "="*50) print("数据库迁移完成!") print("="*50) if __name__ == '__main__': migrate_database()