From 7a2ddc9df48f928bebf7ddd5d994d3d31fc09f40 Mon Sep 17 00:00:00 2001 From: Erkan Ozgur Yilmaz Date: Mon, 2 Dec 2024 14:48:07 +0000 Subject: [PATCH] [#120] Fixed alembic revision with id `91ed52b72b82` (which is about adding the Variant class) to also create a `StatusList` for `Variant` instances. --- .../91ed52b72b82_created_variant_class.py | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/alembic/versions/91ed52b72b82_created_variant_class.py b/alembic/versions/91ed52b72b82_created_variant_class.py index 6d24ad14..2df3e9a5 100644 --- a/alembic/versions/91ed52b72b82_created_variant_class.py +++ b/alembic/versions/91ed52b72b82_created_variant_class.py @@ -41,6 +41,52 @@ def upgrade(): existing_nullable=True, ) + # create Variant Status Lists + op.execute(""" + WITH ins1 AS ( + INSERT INTO "SimpleEntities" ( + entity_type, + name, + description, + date_created, + date_updated, + html_style, + html_class, + stalker_version + ) + VALUES ( + 'StatusList', + 'Variant Statuses', + 'Created by alembic revision: 91ed52b72b82', + (SELECT CAST(NOW() at time zone 'utc' AS timestamp)), + (SELECT CAST(NOW() at time zone 'utc' AS timestamp)), + '', + '', + '1.0.0.dev1' + ) + RETURNING id as variant_status_list_id + ), + ins2 AS ( + INSERT INTO "Entities" (id) (SELECT ins1.variant_status_list_id FROM ins1) + ) + INSERT INTO "StatusLists" (id, target_entity_type) (SELECT ins1.variant_status_list_id, 'Variant' FROM ins1); + """) + + # Add the same statuses of Task StatusList to Variant StatusList + op.execute( + """ + INSERT INTO "StatusList_Statuses" (status_list_id, status_id) ( + SELECT + (SELECT id FROM "StatusLists" WHERE target_entity_type = 'Variant') as status_list_id, + "StatusList_Statuses".status_id + FROM "StatusList_Statuses" + WHERE "StatusList_Statuses".status_list_id = ( + SELECT id FROM "StatusLists" WHERE target_entity_type = 'Task' + ) + ) + """ + ) + def downgrade(): """Downgrade the tables.""" @@ -59,4 +105,22 @@ def downgrade(): type_=sa.REAL(), existing_nullable=True, ) + # remove Variant Status List Statuses + op.execute(""" + DELETE FROM "StatusList_Statuses" + WHERE "StatusList_Statuses".status_list_id = ( + SELECT id FROM "StatusLists" WHERE "StatusLists".target_entity_type = 'Variant' + ) + """) + # remove Variant Status Lists + op.execute(""" + WITH del1 AS ( + DELETE FROM "StatusLists" + WHERE "StatusLists".target_entity_type = 'Variant' + RETURNING "StatusLists".id as deleted_status_list_id + ), del2 AS ( + DELETE FROM "Entities" WHERE "Entities".id = (SELECT del1.deleted_status_list_id FROM del1) + ) + DELETE FROM "SimpleEntities" WHERE "SimpleEntities".id = (SELECT del1.deleted_status_list_id FROM del1) + """) op.drop_table("Variants")