Skip to content

Commit

Permalink
[#120] Fixed alembic revision with id 91ed52b72b82 (which is about …
Browse files Browse the repository at this point in the history
…adding the Variant class) to also create a `StatusList` for `Variant` instances.
  • Loading branch information
eoyilmaz committed Dec 4, 2024
1 parent 48ae9e4 commit 7a2ddc9
Showing 1 changed file with 64 additions and 0 deletions.
64 changes: 64 additions & 0 deletions alembic/versions/91ed52b72b82_created_variant_class.py
Original file line number Diff line number Diff line change
Expand Up @@ -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."""
Expand All @@ -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")

0 comments on commit 7a2ddc9

Please sign in to comment.