What and why
There is no database schema in code yet. Everything in M1 depends on having Faculty, Course, CourseImplementation, and Lecturer tables.
Done when
Alembic is initialized in apps/api/. A first migration creates these five tables with the correct columns and relationships as defined in docs/ARCHITECTURE.md. docker compose exec api alembic upgrade head runs without error against a fresh Postgres container. A second migration adds the CourseImplementation ↔ Lecturer join table.
Notes
Use SQLAlchemy ORM models in apps/api/models/. Match column names exactly to the architecture doc — any deviation needs an ADR or an architecture doc update first.
What and why
There is no database schema in code yet. Everything in M1 depends on having
Faculty,Course,CourseImplementation, andLecturertables.Done when
Alembic is initialized in
apps/api/. A first migration creates these five tables with the correct columns and relationships as defined indocs/ARCHITECTURE.md.docker compose exec api alembic upgrade headruns without error against a fresh Postgres container. A second migration adds theCourseImplementation ↔ Lecturerjoin table.Notes
Use SQLAlchemy ORM models in
apps/api/models/. Match column names exactly to the architecture doc — any deviation needs an ADR or an architecture doc update first.