/
ivanstrike
/
tasker
Обзор
Документация
Войти
/
ivanstrike
/
tasker
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
python_Sklyarenko/Lab2/app/db.py
31 строка
1 KB
ivanstrike
Lab3
13 дек 2025, 11:15
13 дек 2025, 11:15
15c0fa5
Код
Авторство
О чём код?
import os from sqlmodel import SQLModel, create_engine, Session DATABASE_URL = os.getenv("DATABASE_URL", "sqlite:///./dev.db") # For SQLite in container, need check_same_thread False only with sqlite3 module + SQLAlchemy connect_args = {"check_same_thread": False} if DATABASE_URL.startswith("sqlite") else {} engine = create_engine(DATABASE_URL, echo=False, connect_args=connect_args) def init_db(): SQLModel.metadata.create_all(engine) # seed data if empty from sqlmodel import select from .models import Project, Task with Session(engine) as session: projects = session.exec(select(Project)).all() if not projects: p1 = Project(name="Alpha", description="First project") p2 = Project(name="Beta", description="Second project") session.add(p1); session.add(p2); session.commit() session.refresh(p1); session.refresh(p2) tasks = [ Task(title="Design API", status="in_progress", priority="high", project_id=p1.id), Task(title="Write docs", status="todo", priority="medium", project_id=p1.id), Task(title="Implement pagination", status="done", priority="high", project_id=p2.id), Task(title="Add rate limiting", status="in_review", priority="high", project_id=p2.id), Task(title="Polish admin panel", status="todo", priority="low", project_id=p2.id), ] session.add_all(tasks) session.commit()