From 7f23c272fdae09cead586da4f543ba87f27c0dd4 Mon Sep 17 00:00:00 2001 From: Andrei Neagu Date: Tue, 13 May 2025 13:14:13 +0200 Subject: [PATCH] added tested migration --- ...eeeae58e_adds_template_type_to_projects.py | 37 +++++++++++++++++++ .../models/projects.py | 13 +++++++ 2 files changed, 50 insertions(+) create mode 100644 packages/postgres-database/src/simcore_postgres_database/migration/versions/e145eeeae58e_adds_template_type_to_projects.py diff --git a/packages/postgres-database/src/simcore_postgres_database/migration/versions/e145eeeae58e_adds_template_type_to_projects.py b/packages/postgres-database/src/simcore_postgres_database/migration/versions/e145eeeae58e_adds_template_type_to_projects.py new file mode 100644 index 000000000000..221396fb02c8 --- /dev/null +++ b/packages/postgres-database/src/simcore_postgres_database/migration/versions/e145eeeae58e_adds_template_type_to_projects.py @@ -0,0 +1,37 @@ +"""adds template_type to projects + +Revision ID: e145eeeae58e +Revises: 0d52976dc616 +Create Date: 2025-05-13 09:35:41.864576+00:00 + +""" + +import sqlalchemy as sa +from alembic import op + +# revision identifiers, used by Alembic. +revision = "e145eeeae58e" +down_revision = "0d52976dc616" +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column( + "projects", + sa.Column( + "template_type", + sa.Enum("TEMPLATE", "STANDARD", name="projecttype"), + nullable=True, + ), + ) + # Update existing template projects + op.execute("UPDATE projects SET template_type='TEMPLATE' WHERE type='TEMPLATE'") + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_column("projects", "template_type") + # ### end Alembic commands ### diff --git a/packages/postgres-database/src/simcore_postgres_database/models/projects.py b/packages/postgres-database/src/simcore_postgres_database/models/projects.py index 1db9db0fd7bd..56c127d92c7d 100644 --- a/packages/postgres-database/src/simcore_postgres_database/models/projects.py +++ b/packages/postgres-database/src/simcore_postgres_database/models/projects.py @@ -16,6 +16,12 @@ class ProjectType(enum.Enum): STANDARD = "STANDARD" +class ProjectTemplateType(enum.Enum): + TEMPLATE = "TEMPLATE" + TUTORIAL = "TUTORIAL" + HYPERTOOL = "HYPERTOOL" + + projects = sa.Table( "projects", metadata, @@ -29,6 +35,13 @@ class ProjectType(enum.Enum): default=ProjectType.STANDARD, doc="Either standard or template types", ), + sa.Column( + "template_type", + sa.Enum(ProjectType), + nullable=True, + default=None, + doc="None if type is STANDARD, otherwise it is one of the ProjectTemplateType", + ), sa.Column( "uuid", sa.String,