From b11bdad0f2601e0f21ac434a2b0155222775cbbc Mon Sep 17 00:00:00 2001 From: samredai Date: Wed, 14 May 2025 11:49:37 -0400 Subject: [PATCH 1/2] Change enum on history events to str --- ...bfae_change_enum_columns_to_string_type.py | 42 +++++++++++++++++++ .../datajunction_server/database/history.py | 10 ++--- 2 files changed, 46 insertions(+), 6 deletions(-) create mode 100644 datajunction-server/datajunction_server/alembic/versions/2025_05_14_1545-cb7368a4bfae_change_enum_columns_to_string_type.py diff --git a/datajunction-server/datajunction_server/alembic/versions/2025_05_14_1545-cb7368a4bfae_change_enum_columns_to_string_type.py b/datajunction-server/datajunction_server/alembic/versions/2025_05_14_1545-cb7368a4bfae_change_enum_columns_to_string_type.py new file mode 100644 index 000000000..101477274 --- /dev/null +++ b/datajunction-server/datajunction_server/alembic/versions/2025_05_14_1545-cb7368a4bfae_change_enum_columns_to_string_type.py @@ -0,0 +1,42 @@ +"""Change enum columns to string type + +Revision ID: cb7368a4bfae +Revises: 51547dcccb10 +Create Date: 2025-05-14 15:45:43.734154+00:00 + +""" +# pylint: disable=no-member, invalid-name, missing-function-docstring, unused-import, no-name-in-module + +import sqlalchemy as sa +from alembic import op +from sqlalchemy.dialects import postgresql + +# revision identifiers, used by Alembic. +revision = 'cb7368a4bfae' +down_revision = '51547dcccb10' +branch_labels = None +depends_on = None + + +def upgrade(): + with op.batch_alter_table('history', schema=None) as batch_op: + batch_op.alter_column('entity_type', + existing_type=postgresql.ENUM('ATTRIBUTE', 'AVAILABILITY', 'BACKFILL', 'CATALOG', 'COLUMN_ATTRIBUTE', 'DEPENDENCY', 'ENGINE', 'LINK', 'MATERIALIZATION', 'NAMESPACE', 'NODE', 'PARTITION', 'QUERY', 'TAG', name='entitytype'), + type_=sa.String(length=20), + existing_nullable=True) + batch_op.alter_column('activity_type', + existing_type=postgresql.ENUM('CREATE', 'DELETE', 'RESTORE', 'UPDATE', 'REFRESH', 'TAG', 'SET_ATTRIBUTE', 'STATUS_CHANGE', name='activitytype'), + type_=sa.String(length=20), + existing_nullable=True) + + +def downgrade(): + with op.batch_alter_table('history', schema=None) as batch_op: + batch_op.alter_column('activity_type', + existing_type=sa.String(length=20), + type_=postgresql.ENUM('CREATE', 'DELETE', 'RESTORE', 'UPDATE', 'REFRESH', 'TAG', 'SET_ATTRIBUTE', 'STATUS_CHANGE', name='activitytype'), + existing_nullable=True) + batch_op.alter_column('entity_type', + existing_type=sa.String(length=20), + type_=postgresql.ENUM('ATTRIBUTE', 'AVAILABILITY', 'BACKFILL', 'CATALOG', 'COLUMN_ATTRIBUTE', 'DEPENDENCY', 'ENGINE', 'LINK', 'MATERIALIZATION', 'NAMESPACE', 'NODE', 'PARTITION', 'QUERY', 'TAG', name='entitytype'), + existing_nullable=True) diff --git a/datajunction-server/datajunction_server/database/history.py b/datajunction-server/datajunction_server/database/history.py index e5ffd5f07..4dc8da1fd 100644 --- a/datajunction-server/datajunction_server/database/history.py +++ b/datajunction-server/datajunction_server/database/history.py @@ -8,7 +8,6 @@ JSON, BigInteger, DateTime, - Enum, Index, Integer, String, @@ -16,7 +15,6 @@ from sqlalchemy.orm import Mapped, mapped_column from datajunction_server.database.base import Base -from datajunction_server.internal.history import ActivityType, EntityType from datajunction_server.typing import UTCDatetime @@ -35,14 +33,14 @@ class History(Base): BigInteger().with_variant(Integer, "sqlite"), primary_key=True, ) - entity_type: Mapped[Optional[EntityType]] = mapped_column( - Enum(EntityType), + entity_type: Mapped[Optional[str]] = mapped_column( + String(20), default=None, ) entity_name: Mapped[Optional[str]] = mapped_column(String, default=None) node: Mapped[Optional[str]] = mapped_column(String, default=None) - activity_type: Mapped[Optional[ActivityType]] = mapped_column( - Enum(ActivityType), + activity_type: Mapped[Optional[str]] = mapped_column( + String(20), default=None, ) user: Mapped[Optional[str]] = mapped_column(String, default=None) From 8083a48c2e6ea23345ae4e84e6455bb766a6588f Mon Sep 17 00:00:00 2001 From: samredai Date: Wed, 14 May 2025 12:03:15 -0400 Subject: [PATCH 2/2] lint --- ...bfae_change_enum_columns_to_string_type.py | 100 ++++++++++++++---- 1 file changed, 80 insertions(+), 20 deletions(-) diff --git a/datajunction-server/datajunction_server/alembic/versions/2025_05_14_1545-cb7368a4bfae_change_enum_columns_to_string_type.py b/datajunction-server/datajunction_server/alembic/versions/2025_05_14_1545-cb7368a4bfae_change_enum_columns_to_string_type.py index 101477274..3d6bf7ccb 100644 --- a/datajunction-server/datajunction_server/alembic/versions/2025_05_14_1545-cb7368a4bfae_change_enum_columns_to_string_type.py +++ b/datajunction-server/datajunction_server/alembic/versions/2025_05_14_1545-cb7368a4bfae_change_enum_columns_to_string_type.py @@ -12,31 +12,91 @@ from sqlalchemy.dialects import postgresql # revision identifiers, used by Alembic. -revision = 'cb7368a4bfae' -down_revision = '51547dcccb10' +revision = "cb7368a4bfae" +down_revision = "51547dcccb10" branch_labels = None depends_on = None def upgrade(): - with op.batch_alter_table('history', schema=None) as batch_op: - batch_op.alter_column('entity_type', - existing_type=postgresql.ENUM('ATTRIBUTE', 'AVAILABILITY', 'BACKFILL', 'CATALOG', 'COLUMN_ATTRIBUTE', 'DEPENDENCY', 'ENGINE', 'LINK', 'MATERIALIZATION', 'NAMESPACE', 'NODE', 'PARTITION', 'QUERY', 'TAG', name='entitytype'), - type_=sa.String(length=20), - existing_nullable=True) - batch_op.alter_column('activity_type', - existing_type=postgresql.ENUM('CREATE', 'DELETE', 'RESTORE', 'UPDATE', 'REFRESH', 'TAG', 'SET_ATTRIBUTE', 'STATUS_CHANGE', name='activitytype'), - type_=sa.String(length=20), - existing_nullable=True) + with op.batch_alter_table("history", schema=None) as batch_op: + batch_op.alter_column( + "entity_type", + existing_type=postgresql.ENUM( + "ATTRIBUTE", + "AVAILABILITY", + "BACKFILL", + "CATALOG", + "COLUMN_ATTRIBUTE", + "DEPENDENCY", + "ENGINE", + "LINK", + "MATERIALIZATION", + "NAMESPACE", + "NODE", + "PARTITION", + "QUERY", + "TAG", + name="entitytype", + ), + type_=sa.String(length=20), + existing_nullable=True, + ) + batch_op.alter_column( + "activity_type", + existing_type=postgresql.ENUM( + "CREATE", + "DELETE", + "RESTORE", + "UPDATE", + "REFRESH", + "TAG", + "SET_ATTRIBUTE", + "STATUS_CHANGE", + name="activitytype", + ), + type_=sa.String(length=20), + existing_nullable=True, + ) def downgrade(): - with op.batch_alter_table('history', schema=None) as batch_op: - batch_op.alter_column('activity_type', - existing_type=sa.String(length=20), - type_=postgresql.ENUM('CREATE', 'DELETE', 'RESTORE', 'UPDATE', 'REFRESH', 'TAG', 'SET_ATTRIBUTE', 'STATUS_CHANGE', name='activitytype'), - existing_nullable=True) - batch_op.alter_column('entity_type', - existing_type=sa.String(length=20), - type_=postgresql.ENUM('ATTRIBUTE', 'AVAILABILITY', 'BACKFILL', 'CATALOG', 'COLUMN_ATTRIBUTE', 'DEPENDENCY', 'ENGINE', 'LINK', 'MATERIALIZATION', 'NAMESPACE', 'NODE', 'PARTITION', 'QUERY', 'TAG', name='entitytype'), - existing_nullable=True) + with op.batch_alter_table("history", schema=None) as batch_op: + batch_op.alter_column( + "activity_type", + existing_type=sa.String(length=20), + type_=postgresql.ENUM( + "CREATE", + "DELETE", + "RESTORE", + "UPDATE", + "REFRESH", + "TAG", + "SET_ATTRIBUTE", + "STATUS_CHANGE", + name="activitytype", + ), + existing_nullable=True, + ) + batch_op.alter_column( + "entity_type", + existing_type=sa.String(length=20), + type_=postgresql.ENUM( + "ATTRIBUTE", + "AVAILABILITY", + "BACKFILL", + "CATALOG", + "COLUMN_ATTRIBUTE", + "DEPENDENCY", + "ENGINE", + "LINK", + "MATERIALIZATION", + "NAMESPACE", + "NODE", + "PARTITION", + "QUERY", + "TAG", + name="entitytype", + ), + existing_nullable=True, + )