43 lines
1.4 KiB
Python
43 lines
1.4 KiB
Python
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('数据库已存在')
|