first commit

This commit is contained in:
2026-01-09 19:14:41 +08:00
commit 9f3c96ce73
67 changed files with 9636 additions and 0 deletions

View File

@@ -0,0 +1,64 @@
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker, declarative_base
from app.config import DATABASE_URL
import os
# MySQL 連線引擎設定
engine = create_engine(
DATABASE_URL,
pool_size=10,
max_overflow=20,
pool_pre_ping=True,
pool_recycle=3600,
echo=False
)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
Base = declarative_base()
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()
# Import models to register them
from app.models.user import User, UserRole
from app.models.dit import DitRecord
from app.models.sample import SampleRecord
from app.models.order import OrderRecord
from app.models.match import MatchResult, ReviewLog
def init_db():
"""初始化資料庫並建立預設管理員"""
from app.utils.security import get_password_hash
# 建立所有資料表
Base.metadata.create_all(bind=engine)
# 建立預設管理員帳號
db = SessionLocal()
try:
admin_email = os.getenv("ADMIN_EMAIL", "admin@example.com")
admin_password = os.getenv("ADMIN_PASSWORD", "admin123")
existing = db.query(User).filter(User.email == admin_email).first()
if not existing:
admin = User(
email=admin_email,
password_hash=get_password_hash(admin_password),
display_name="Administrator",
language="zh-TW",
role=UserRole.admin
)
db.add(admin)
db.commit()
print(f"[Init] Admin user created: {admin_email}")
else:
print(f"[Init] Admin user exists: {admin_email}")
except Exception as e:
print(f"[Init] Error creating admin: {e}")
db.rollback()
finally:
db.close()