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

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

This commit is contained in:
MoonTestUse1
2024-12-28 07:42:58 +06:00
parent 5ffb2c4564
commit 8a77bd0091

View File

@@ -14,22 +14,9 @@ branch_labels = None
depends_on = None
def upgrade() -> None:
connection = op.get_bind()
# Проверяем существование 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 enum types
request_status = sa.Enum(RequestStatus, name='requeststatus')
request_priority = sa.Enum(RequestPriority, name='requestpriority')
# Create employees table
op.create_table(
@@ -53,8 +40,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', 'requestpriority', nullable=False),
sa.Column('status', 'requeststatus', nullable=False, server_default="'NEW'"),
sa.Column('priority', request_priority, nullable=False),
sa.Column('status', request_status, nullable=False, server_default=RequestStatus.NEW.name),
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'], ),
@@ -66,7 +53,6 @@ def downgrade() -> None:
op.drop_table('requests')
op.drop_table('employees')
# 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;'))
# Drop enum types
sa.Enum(RequestStatus, name='requeststatus').drop(op.get_bind(), checkfirst=True)
sa.Enum(RequestPriority, name='requestpriority').drop(op.get_bind(), checkfirst=True)