From d5f2373143438f439adeaaefa8fcaa63c6607bac Mon Sep 17 00:00:00 2001 From: Koncept Kit <63216427+konceptkit@users.noreply.github.com> Date: Sun, 4 Jan 2026 23:01:20 +0700 Subject: [PATCH] Add missing subscription_plans columns --- .../007_add_subscription_plan_fields.py | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 alembic/versions/007_add_subscription_plan_fields.py diff --git a/alembic/versions/007_add_subscription_plan_fields.py b/alembic/versions/007_add_subscription_plan_fields.py new file mode 100644 index 0000000..2773aa5 --- /dev/null +++ b/alembic/versions/007_add_subscription_plan_fields.py @@ -0,0 +1,49 @@ +"""add_subscription_plan_fields + +Revision ID: 007_add_sub_fields +Revises: 006_rename_active +Create Date: 2026-01-04 + +Fixes: +- Add missing columns to subscription_plans table + (custom cycle fields, dynamic pricing fields) +""" +from typing import Sequence, Union +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision: str = '007_add_sub_fields' +down_revision: Union[str, None] = '006_rename_active' +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + """Add missing columns to subscription_plans""" + + # Custom billing cycle fields + op.add_column('subscription_plans', sa.Column('custom_cycle_enabled', sa.Boolean(), nullable=False, server_default='false')) + op.add_column('subscription_plans', sa.Column('custom_cycle_start_month', sa.Integer(), nullable=True)) + op.add_column('subscription_plans', sa.Column('custom_cycle_start_day', sa.Integer(), nullable=True)) + op.add_column('subscription_plans', sa.Column('custom_cycle_end_month', sa.Integer(), nullable=True)) + op.add_column('subscription_plans', sa.Column('custom_cycle_end_day', sa.Integer(), nullable=True)) + + # Dynamic pricing fields + op.add_column('subscription_plans', sa.Column('minimum_price_cents', sa.Integer(), nullable=False, server_default='3000')) + op.add_column('subscription_plans', sa.Column('suggested_price_cents', sa.Integer(), nullable=True)) + op.add_column('subscription_plans', sa.Column('allow_donation', sa.Boolean(), nullable=False, server_default='true')) + + +def downgrade() -> None: + """Remove added columns (rollback)""" + + op.drop_column('subscription_plans', 'allow_donation') + op.drop_column('subscription_plans', 'suggested_price_cents') + op.drop_column('subscription_plans', 'minimum_price_cents') + op.drop_column('subscription_plans', 'custom_cycle_end_day') + op.drop_column('subscription_plans', 'custom_cycle_end_month') + op.drop_column('subscription_plans', 'custom_cycle_start_day') + op.drop_column('subscription_plans', 'custom_cycle_start_month') + op.drop_column('subscription_plans', 'custom_cycle_enabled') -- 2.39.5