~edwargix/git.sr.ht

af1c393fd8bb277b1bceab2604fee1d9d237b408 — Drew DeVault 4 years ago f1c82f9
artifacts: add constraint on (repo_id, filename)
A gitsrht/alembic/versions/d42e577c5dcd_add_unique_constraint_to_artifacts.py => gitsrht/alembic/versions/d42e577c5dcd_add_unique_constraint_to_artifacts.py +23 -0
@@ 0,0 1,23 @@
"""Add unique constraint to artifacts

Revision ID: d42e577c5dcd
Revises: 01412986a44d
Create Date: 2020-08-21 09:17:34.605895

"""

# revision identifiers, used by Alembic.
revision = 'd42e577c5dcd'
down_revision = '01412986a44d'

from alembic import op
import sqlalchemy as sa


def upgrade():
    op.create_unique_constraint("repo_artifact_filename_unique",
            "artifact", ["repo_id", "filename"])


def downgrade():
    op.drop_constraint("repo_artifact_filename_unique", "artifact", type_="unique")

M gitsrht/types/artifact.py => gitsrht/types/artifact.py +5 -0
@@ 6,6 6,11 @@ from srht.database import Base

class Artifact(Base):
    __tablename__ = 'artifacts'
    __table_args__ = (
        sa.UniqueConstraint("repo_id", "filename",
            name="repo_artifact_filename_unique"),
    )

    id = sa.Column(sa.Integer, primary_key=True)
    created = sa.Column(sa.DateTime, nullable=False)
    user_id = sa.Column(sa.Integer, sa.ForeignKey('user.id'), nullable=False)