1
0
mirror of https://gitlab.com/MoonTestUse1/AdministrationItDepartmens.git synced 2025-08-14 00:25:46 +02:00

Интеграция базы данных Postgresql v12

This commit is contained in:
MoonTestUse1
2024-12-28 07:38:48 +06:00
parent c24f598afb
commit 5ffb2c4564

View File

@@ -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;'))