mirror of
https://gitlab.com/MoonTestUse1/AdministrationItDepartmens.git
synced 2025-08-14 00:25:46 +02:00
Интеграция базы данных Postgresql v12
This commit is contained in:
@@ -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;'))
|
Reference in New Issue
Block a user