123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- """
- 数据库初始化脚本
- """
- import os
- import sys
- import logging
- from datetime import datetime
- # 将项目根目录添加到Python路径
- sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
- from sqlalchemy.orm import Session
- from core.models import Base, User
- from core.database import engine, SessionLocal
- from core.auth import get_password_hash
- logging.basicConfig(level=logging.INFO)
- logger = logging.getLogger(__name__)
- def init_db():
- """初始化数据库"""
- # 创建所有表
- Base.metadata.create_all(bind=engine)
-
- # 创建数据库会话
- db = SessionLocal()
-
- try:
- # 检查是否已有用户
- user = db.query(User).first()
-
- if not user:
- # 创建默认用户
- default_user = User(
- username="admin",
- email="admin@example.com",
- hashed_password=get_password_hash("password"),
- institution="江西财经大学",
- position="学生",
- research_fields=["人工智能", "计算机视觉", "自然语言处理"],
- membership_type="高级研究版",
- expiry_date=datetime(2025, 12, 31),
- credits=5280
- )
- db.add(default_user)
- db.commit()
- logger.info("创建了默认用户")
- else:
- logger.info("数据库已初始化")
-
- finally:
- db.close()
-
- logger.info("数据库初始化完成")
- if __name__ == "__main__":
- logger.info("初始化数据库...")
- init_db()
|