From 270e64b5bdf9d39fabdfa762c113603982c18cab Mon Sep 17 00:00:00 2001 From: Snigdha Sharma Date: Thu, 20 Jun 2024 11:52:45 -0700 Subject: [PATCH] fix(group-attributes): Modify the column type for `group_first_release_id` to bigint (#6040) * Modify the column type to bigint * Fix types * Add migration to group_loader * Add OperationTarget --- snuba/migrations/group_loader.py | 1 + .../0004_fix_group_first_release_id_type.py | 47 +++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 snuba/snuba_migrations/group_attributes/0004_fix_group_first_release_id_type.py diff --git a/snuba/migrations/group_loader.py b/snuba/migrations/group_loader.py index 2cbc098784..3f35ec04b9 100644 --- a/snuba/migrations/group_loader.py +++ b/snuba/migrations/group_loader.py @@ -400,6 +400,7 @@ def get_migrations(self) -> Sequence[str]: "0001_group_attributes", "0002_add_priority_to_group_attributes", "0003_add_first_release_id_to_group_attributes", + "0004_fix_group_first_release_id_type", ] diff --git a/snuba/snuba_migrations/group_attributes/0004_fix_group_first_release_id_type.py b/snuba/snuba_migrations/group_attributes/0004_fix_group_first_release_id_type.py new file mode 100644 index 0000000000..cd441c6c25 --- /dev/null +++ b/snuba/snuba_migrations/group_attributes/0004_fix_group_first_release_id_type.py @@ -0,0 +1,47 @@ +from typing import Sequence + +from snuba.clickhouse.columns import UUID, Column, UInt +from snuba.clusters.storage_sets import StorageSetKey +from snuba.migrations import migration, operations +from snuba.migrations.columns import MigrationModifiers as Modifiers +from snuba.migrations.operations import OperationTarget, SqlOperation + + +class Migration(migration.ClickhouseNodeMigration): + blocking = False + + def forwards_ops(self) -> Sequence[SqlOperation]: + return [ + operations.ModifyColumn( + storage_set=StorageSetKey.GROUP_ATTRIBUTES, + table_name="group_attributes_local", + column=Column( + "group_first_release_id", UInt(64, Modifiers(nullable=True)) + ), + target=OperationTarget.LOCAL, + ), + operations.ModifyColumn( + storage_set=StorageSetKey.GROUP_ATTRIBUTES, + table_name="group_attributes_dist", + column=Column( + "group_first_release_id", UInt(64, Modifiers(nullable=True)) + ), + target=OperationTarget.DISTRIBUTED, + ), + ] + + def backwards_ops(self) -> Sequence[SqlOperation]: + return [ + operations.ModifyColumn( + storage_set=StorageSetKey.GROUP_ATTRIBUTES, + table_name="group_attributes_dist", + column=Column("group_first_release_id", UUID(Modifiers(nullable=True))), + target=OperationTarget.DISTRIBUTED, + ), + operations.ModifyColumn( + storage_set=StorageSetKey.GROUP_ATTRIBUTES, + table_name="group_attributes_local", + column=Column("group_first_release_id", UUID(Modifiers(nullable=True))), + target=OperationTarget.LOCAL, + ), + ]