From 5f302106a9958450846dd4de2cb68644c297ac4c Mon Sep 17 00:00:00 2001 From: swve Date: Thu, 20 Mar 2025 11:15:30 +0100 Subject: [PATCH] feat: add migration alembic script --- .../4a88b680263c_multi_contributors.py | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 apps/api/migrations/versions/4a88b680263c_multi_contributors.py diff --git a/apps/api/migrations/versions/4a88b680263c_multi_contributors.py b/apps/api/migrations/versions/4a88b680263c_multi_contributors.py new file mode 100644 index 00000000..4bfa6ec3 --- /dev/null +++ b/apps/api/migrations/versions/4a88b680263c_multi_contributors.py @@ -0,0 +1,48 @@ +"""Multi-contributors + +Revision ID: 4a88b680263c +Revises: 87a621284ae4 +Create Date: 2025-03-20 11:05:24.951129 + +""" +from typing import Sequence, Union + +from alembic import op +import sqlalchemy as sa # noqa: F401 +import sqlmodel # noqa: F401 +from alembic_postgresql_enum import TableReference +from sqlalchemy.dialects import postgresql + +# revision identifiers, used by Alembic. +revision: str = '4a88b680263c' +down_revision: Union[str, None] = '87a621284ae4' +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('course', sa.Column('open_to_contributors', sa.Boolean(), nullable=False, default=False, server_default='false')) + op.add_column('resourceauthor', sa.Column('authorship_status', postgresql.ENUM('ACTIVE', 'PENDING', 'INACTIVE', name='resourceauthorshipstatusenum', create_type=False), nullable=False, default='INACTIVE', server_default='INACTIVE')) + op.sync_enum_values( + enum_schema='public', + enum_name='resourceauthorshipenum', + new_values=['CREATOR', 'CONTRIBUTOR', 'MAINTAINER', 'REPORTER'], + affected_columns=[TableReference(table_schema='public', table_name='resourceauthor', column_name='authorship')], + enum_values_to_rename=[], + ) + # ### end Alembic commands ### + + +def downgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.sync_enum_values( + enum_schema='public', + enum_name='resourceauthorshipenum', + new_values=['CREATOR', 'MAINTAINER', 'REPORTER'], + affected_columns=[TableReference(table_schema='public', table_name='resourceauthor', column_name='authorship')], + enum_values_to_rename=[], + ) + op.drop_column('resourceauthor', 'authorship_status') + op.drop_column('course', 'open_to_contributors') + # ### end Alembic commands ###