From b759a997d97f25954500ae185dbd770e43e5d116 Mon Sep 17 00:00:00 2001 From: hexdev Date: Wed, 19 Aug 2026 21:58:57 +0700 Subject: [PATCH] fix: addon.is_enabled NOT NULL --- ...3c440_enforce_addon_is_enabled_not_null.py | 38 +++++++++++++++++++ db/models/addons.py | 2 +- 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 alembic/versions/ad537d63c440_enforce_addon_is_enabled_not_null.py diff --git a/alembic/versions/ad537d63c440_enforce_addon_is_enabled_not_null.py b/alembic/versions/ad537d63c440_enforce_addon_is_enabled_not_null.py new file mode 100644 index 0000000..2ed0dda --- /dev/null +++ b/alembic/versions/ad537d63c440_enforce_addon_is_enabled_not_null.py @@ -0,0 +1,38 @@ +"""enforce addon.is_enabled->NOT NULL + +Revision ID: ad537d63c440 +Revises: 6d1bae3dc723 +Create Date: 2026-08-19 21:14:39.928563 + +""" +from typing import Sequence, Union + +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision: str = 'ad537d63c440' +down_revision: Union[str, Sequence[str], None] = '6d1bae3dc723' +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + """Upgrade schema.""" + # ### commands auto generated by Alembic - please adjust! ### + op.alter_column('addons', 'is_enabled', + existing_type=sa.BOOLEAN(), + nullable=False) + op.create_unique_constraint(None, 'link_codes', ['code']) + # ### end Alembic commands ### + + +def downgrade() -> None: + """Downgrade schema.""" + # ### commands auto generated by Alembic - please adjust! ### + op.drop_constraint(None, 'link_codes', type_='unique') + op.alter_column('addons', 'is_enabled', + existing_type=sa.BOOLEAN(), + nullable=True) + # ### end Alembic commands ### diff --git a/db/models/addons.py b/db/models/addons.py index 89aa3bf..a297b2a 100644 --- a/db/models/addons.py +++ b/db/models/addons.py @@ -11,4 +11,4 @@ class Addon(Base): name: Mapped[str] = mapped_column(TEXT, nullable=False, unique=False) price: Mapped[float] = mapped_column(FLOAT, nullable=False) free_threshold: Mapped[int] = mapped_column(INTEGER, default=-1) - is_enabled: Mapped[bool] = mapped_column(BOOLEAN, default=False, nullable=True) + is_enabled: Mapped[bool] = mapped_column(BOOLEAN, default=False, nullable=False)