From 6f97b883fb11c77643eddde3e5425811746629f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lu=C3=ADs=20Murta?= Date: Thu, 8 Dec 2022 16:44:07 +0000 Subject: [PATCH] Add weekly option on the schedule period --- .../versions/e77395969585_weekly_period.py | 37 +++++++++++++++++++ pfbudget/db/model.py | 7 ++-- 2 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 alembic/versions/e77395969585_weekly_period.py diff --git a/alembic/versions/e77395969585_weekly_period.py b/alembic/versions/e77395969585_weekly_period.py new file mode 100644 index 0000000..bd42cb0 --- /dev/null +++ b/alembic/versions/e77395969585_weekly_period.py @@ -0,0 +1,37 @@ +"""Weekly period + +Revision ID: e77395969585 +Revises: d18cbd50f7c6 +Create Date: 2022-12-08 16:35:27.506504+00:00 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = "e77395969585" +down_revision = "d18cbd50f7c6" +branch_labels = None +depends_on = None + + +def upgrade() -> None: + op.execute("ALTER TYPE transactions.period ADD VALUE 'weekly' AFTER 'daily'") + + +def downgrade() -> None: + op.execute( + """CREATE TYPE transactions.period_new + AS ENUM ('daily', 'monthly', 'yearly') + """ + ) + op.execute("UPDATE transactions.categories_schedules SET period = DEFAULT WHERE period = 'weekly'") + op.execute( + """ALTER TABLE transactions.categories_schedules + ALTER COLUMN period TYPE transactions.period_new + USING period::text::transactions.period_new + """ + ) + op.execute("DROP TYPE transactions.period") + op.execute("ALTER TYPE transactions.period_new RENAME TO period") diff --git a/pfbudget/db/model.py b/pfbudget/db/model.py index a852768..d5704e5 100644 --- a/pfbudget/db/model.py +++ b/pfbudget/db/model.py @@ -204,9 +204,10 @@ class CategorySelector(Base): class Period(enum.Enum): - daily = enum.auto() - monthly = enum.auto() - yearly = enum.auto() + daily = "daily" + weekly = "weekly" + monthly = "monthly" + yearly = "yearly" scheduleperiod = Annotated[Selector, mapped_column(Enum(Period, inherit_schema=True))]