diff --git a/wacruit/src/apps/resume/models.py b/wacruit/src/apps/resume/models.py index 14c68b4..d3d685c 100644 --- a/wacruit/src/apps/resume/models.py +++ b/wacruit/src/apps/resume/models.py @@ -4,6 +4,7 @@ from sqlalchemy import DateTime from sqlalchemy import ForeignKey from sqlalchemy import Text +from sqlalchemy import UniqueConstraint from sqlalchemy.orm import Mapped from sqlalchemy.orm import mapped_column from sqlalchemy.orm import relationship @@ -54,6 +55,7 @@ def __str__(self): class ResumeSubmission(DeclarativeBase): __tablename__ = "resume_submission" + __table_args__ = (UniqueConstraint("user_id", "question_id", "recruiting_id"),) id: Mapped[intpk] user_id: Mapped[int | None] = mapped_column( diff --git a/wacruit/src/database/migrations/versions/2023_08_10_0025-9dda918f3fba_unique-resume.py b/wacruit/src/database/migrations/versions/2023_08_10_0025-9dda918f3fba_unique-resume.py new file mode 100644 index 0000000..03c3f2c --- /dev/null +++ b/wacruit/src/database/migrations/versions/2023_08_10_0025-9dda918f3fba_unique-resume.py @@ -0,0 +1,31 @@ +"""Add unique key constraint to resume_submission table + +Revision ID: 9dda918f3fba +Revises: 5bbc8b8ae19c +Create Date: 2023-08-10 00:25:36.865535 + +""" +from alembic import op +import sqlalchemy as sa + +# revision identifiers, used by Alembic. +revision = "9dda918f3fba" +down_revision = "5bbc8b8ae19c" +branch_labels = None +depends_on = None + + +def upgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.create_unique_constraint( + "ak_user_question", + "resume_submission", + ["user_id", "question_id", "recruiting_id"], + ) + # ### end Alembic commands ### + + +def downgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.drop_constraint("ak_user_question", "resume_submission", type_="unique") + # ### end Alembic commands ###