from __init__ import app, db from models import User from sqlalchemy import text with app.app_context(): db.create_all() # 检查并添加 password_hash 字段(如果不存在) try: db.session.execute(text("ALTER TABLE user ADD COLUMN password_hash VARCHAR(200)")) db.session.commit() print('已添加 password_hash 字段') except Exception as e: if 'duplicate column' in str(e).lower() or 'already exists' in str(e).lower(): print('password_hash 字段已存在') else: pass # 字段可能已存在,忽略错误 # 创建默认管理员账号 admin = User.query.filter_by(username='管理员').first() if not admin: admin = User( username='admin', dingtalk_userid='admin', dingtalk_name='管理员', dingtalk_dept='', role='admin' ) admin.set_password('admin123') # 设置默认密码 db.session.add(admin) db.session.commit() print('数据库初始化完成,已创建管理员账户') print('用户名: admin') print('密码: admin123') print('请及时修改默认密码!') else: # 确保管理员有密码 if not admin.password_hash: admin.set_password('admin123') db.session.commit() print('已为管理员设置默认密码: admin123') print('数据库已存在')