# -*- 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()
