Files
zjpb.net/migrate_db.py

50 lines
1.4 KiB
Python

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