🐛🗃 — Fix enum migration on PostgreSQL

This commit is contained in:
Luc Didry 2025-01-06 13:10:27 +01:00
parent 1e7672abca
commit fe89d62e88
No known key found for this signature in database
GPG key ID: EA868E12D0257E3C
2 changed files with 6 additions and 4 deletions

View file

@ -8,6 +8,7 @@ Create Date: 2024-12-02 14:12:40.558033
from typing import Sequence, Union
from alembic import op
from sqlalchemy.dialects.postgresql import ENUM
import sqlalchemy as sa
@ -19,14 +20,15 @@ depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
enum = ENUM("4", "6", name="ip_version_enum", create_type=False)
enum.create(op.get_bind(), checkfirst=False)
with op.batch_alter_table("tasks", schema=None) as batch_op:
batch_op.add_column(
sa.Column(
"ip_version", sa.Enum("4", "6"), server_default="4", nullable=False
)
sa.Column("ip_version", enum, server_default="4", nullable=False)
)
def downgrade() -> None:
with op.batch_alter_table("tasks", schema=None) as batch_op:
batch_op.drop_column("ip_version")
ENUM(name="ip_version_enum").drop(op.get_bind(), checkfirst=False)

View file

@ -48,7 +48,7 @@ class Task(Base):
url: Mapped[str] = mapped_column()
domain: Mapped[str] = mapped_column()
ip_version: Mapped[IPVersion] = mapped_column(
Enum("4", "6"),
Enum("4", "6", name="ip_version_enum"),
)
check: Mapped[str] = mapped_column()
expected: Mapped[str] = mapped_column()