mobile app database models admin_contests admin_dashboard admin_exams admin_posts admin_teacher_applications admin_users apply_contest apply_teacher base chat contest_detail contest_list exam_result forum notifications profile themes

This commit is contained in:
2026-03-03 16:02:23 +08:00
parent 0764566742
commit 9a08140623
30 changed files with 1531 additions and 834 deletions

40
add_visibility_column.py Normal file
View File

@@ -0,0 +1,40 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
添加 exam.visibility 字段的数据库迁移脚本
"""
from app import app, db
from models import Exam
def add_visibility_column():
"""为 Exam 表添加 visibility 字段"""
with app.app_context():
try:
# 检查字段是否已存在
inspector = db.inspect(db.engine)
columns = [col['name'] for col in inspector.get_columns('exam')]
if 'visibility' in columns:
print("visibility 字段已存在,无需添加")
return
# 添加字段
with db.engine.connect() as conn:
conn.execute(db.text("ALTER TABLE exam ADD COLUMN visibility VARCHAR(20) DEFAULT 'private'"))
conn.commit()
print("成功添加 visibility 字段")
# 将所有现有考试设置为公开(保持向后兼容)
conn.execute(db.text("UPDATE exam SET visibility = 'public' WHERE visibility IS NULL"))
conn.commit()
print("已将现有考试设置为公开")
except Exception as e:
print(f"添加字段时出错: {e}")
raise
if __name__ == '__main__':
print("开始添加 visibility 字段...")
add_visibility_column()
print("完成!")