From 5ffb2c45640633f57db4716704619cea76eaf3cf Mon Sep 17 00:00:00 2001 From: MoonTestUse1 Date: Sat, 28 Dec 2024 07:38:48 +0600 Subject: [PATCH] =?UTF-8?q?=D0=98=D0=BD=D1=82=D0=B5=D0=B3=D1=80=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D1=8F=20=D0=B1=D0=B0=D0=B7=D1=8B=20=D0=B4=D0=B0?= =?UTF-8?q?=D0=BD=D0=BD=D1=8B=D1=85=20Postgresql=20v12?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/alembic/versions/initial_migration.py | 30 +++++++++++-------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/backend/alembic/versions/initial_migration.py b/backend/alembic/versions/initial_migration.py index db0d02c..5d28df5 100644 --- a/backend/alembic/versions/initial_migration.py +++ b/backend/alembic/versions/initial_migration.py @@ -14,18 +14,22 @@ branch_labels = None depends_on = None def upgrade() -> None: - # Drop existing enum types if they exist connection = op.get_bind() - connection.execute(sa.text('DROP TYPE IF EXISTS requeststatus CASCADE;')) - connection.execute(sa.text('DROP TYPE IF EXISTS requestpriority CASCADE;')) - # Create RequestStatus enum type - request_status = sa.Enum(RequestStatus, name='requeststatus') - request_status.create(op.get_bind(), checkfirst=False) - - # Create RequestPriority enum type - request_priority = sa.Enum(RequestPriority, name='requestpriority') - request_priority.create(op.get_bind(), checkfirst=False) + # Проверяем существование enum типов перед их созданием + result = connection.execute(sa.text( + "SELECT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'requeststatus');" + )).scalar() + if not result: + request_status = sa.Enum(RequestStatus, name='requeststatus') + request_status.create(connection, checkfirst=True) + + result = connection.execute(sa.text( + "SELECT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'requestpriority');" + )).scalar() + if not result: + request_priority = sa.Enum(RequestPriority, name='requestpriority') + request_priority.create(connection, checkfirst=True) # Create employees table op.create_table( @@ -49,8 +53,8 @@ def upgrade() -> None: sa.Column('employee_id', sa.Integer(), nullable=True), sa.Column('department', sa.String(), nullable=False), sa.Column('request_type', sa.String(), nullable=False), - sa.Column('priority', request_priority, nullable=False), - sa.Column('status', request_status, nullable=False, server_default=sa.text("'NEW'")), + sa.Column('priority', 'requestpriority', nullable=False), + sa.Column('status', 'requeststatus', nullable=False, server_default="'NEW'"), sa.Column('description', sa.String(), nullable=True), sa.Column('created_at', sa.DateTime(timezone=True), server_default=sa.text('now()')), sa.ForeignKeyConstraint(['employee_id'], ['employees.id'], ), @@ -62,7 +66,7 @@ def downgrade() -> None: op.drop_table('requests') op.drop_table('employees') - # Drop enum types + # Drop enum types if they exist connection = op.get_bind() connection.execute(sa.text('DROP TYPE IF EXISTS requeststatus CASCADE;')) connection.execute(sa.text('DROP TYPE IF EXISTS requestpriority CASCADE;')) \ No newline at end of file