Both rules, categorries and tags, now derive from the rule base type. This clears up some type definitions.
153 lines
4.8 KiB
Python
153 lines
4.8 KiB
Python
"""Rule inheritance
|
|
|
|
Revision ID: 6b293f78cc97
|
|
Revises: 37d80de801a7
|
|
Create Date: 2023-01-22 20:05:32.887092+00:00
|
|
|
|
"""
|
|
from alembic import op
|
|
import sqlalchemy as sa
|
|
|
|
|
|
# revision identifiers, used by Alembic.
|
|
revision = "6b293f78cc97"
|
|
down_revision = "37d80de801a7"
|
|
branch_labels = None
|
|
depends_on = None
|
|
|
|
|
|
def upgrade() -> None:
|
|
# ### commands auto generated by Alembic - please adjust! ###
|
|
op.create_table(
|
|
"rules",
|
|
sa.Column("id", sa.BigInteger(), autoincrement=True, nullable=False),
|
|
sa.Column("date", sa.Date(), nullable=True),
|
|
sa.Column("description", sa.String(), nullable=True),
|
|
sa.Column("regex", sa.String(), nullable=True),
|
|
sa.Column("bank", sa.String(), nullable=True),
|
|
sa.Column("min", sa.Numeric(precision=16, scale=2), nullable=True),
|
|
sa.Column("max", sa.Numeric(precision=16, scale=2), nullable=True),
|
|
sa.Column("type", sa.String(), nullable=False),
|
|
sa.PrimaryKeyConstraint("id", name=op.f("pk_rules")),
|
|
schema="transactions",
|
|
)
|
|
op.create_foreign_key(
|
|
op.f("fk_categories_rules_id_rules"),
|
|
"categories_rules",
|
|
"rules",
|
|
["id"],
|
|
["id"],
|
|
source_schema="transactions",
|
|
referent_schema="transactions",
|
|
ondelete="CASCADE",
|
|
)
|
|
op.drop_column("categories_rules", "bank", schema="transactions")
|
|
op.drop_column("categories_rules", "min", schema="transactions")
|
|
op.drop_column("categories_rules", "date", schema="transactions")
|
|
op.drop_column("categories_rules", "regex", schema="transactions")
|
|
op.drop_column("categories_rules", "description", schema="transactions")
|
|
op.drop_column("categories_rules", "max", schema="transactions")
|
|
op.create_foreign_key(
|
|
op.f("fk_tag_rules_id_rules"),
|
|
"tag_rules",
|
|
"rules",
|
|
["id"],
|
|
["id"],
|
|
source_schema="transactions",
|
|
referent_schema="transactions",
|
|
ondelete="CASCADE",
|
|
)
|
|
op.drop_column("tag_rules", "bank", schema="transactions")
|
|
op.drop_column("tag_rules", "min", schema="transactions")
|
|
op.drop_column("tag_rules", "date", schema="transactions")
|
|
op.drop_column("tag_rules", "regex", schema="transactions")
|
|
op.drop_column("tag_rules", "description", schema="transactions")
|
|
op.drop_column("tag_rules", "max", schema="transactions")
|
|
# ### end Alembic commands ###
|
|
|
|
|
|
def downgrade() -> None:
|
|
# ### commands auto generated by Alembic - please adjust! ###
|
|
op.add_column(
|
|
"tag_rules",
|
|
sa.Column(
|
|
"max", sa.NUMERIC(precision=16, scale=2), autoincrement=False, nullable=True
|
|
),
|
|
schema="transactions",
|
|
)
|
|
op.add_column(
|
|
"tag_rules",
|
|
sa.Column("description", sa.VARCHAR(), autoincrement=False, nullable=True),
|
|
schema="transactions",
|
|
)
|
|
op.add_column(
|
|
"tag_rules",
|
|
sa.Column("regex", sa.VARCHAR(), autoincrement=False, nullable=True),
|
|
schema="transactions",
|
|
)
|
|
op.add_column(
|
|
"tag_rules",
|
|
sa.Column("date", sa.DATE(), autoincrement=False, nullable=True),
|
|
schema="transactions",
|
|
)
|
|
op.add_column(
|
|
"tag_rules",
|
|
sa.Column(
|
|
"min", sa.NUMERIC(precision=16, scale=2), autoincrement=False, nullable=True
|
|
),
|
|
schema="transactions",
|
|
)
|
|
op.add_column(
|
|
"tag_rules",
|
|
sa.Column("bank", sa.VARCHAR(), autoincrement=False, nullable=True),
|
|
schema="transactions",
|
|
)
|
|
op.drop_constraint(
|
|
op.f("fk_tag_rules_id_rules"),
|
|
"tag_rules",
|
|
schema="transactions",
|
|
type_="foreignkey",
|
|
)
|
|
op.add_column(
|
|
"categories_rules",
|
|
sa.Column(
|
|
"max", sa.NUMERIC(precision=16, scale=2), autoincrement=False, nullable=True
|
|
),
|
|
schema="transactions",
|
|
)
|
|
op.add_column(
|
|
"categories_rules",
|
|
sa.Column("description", sa.VARCHAR(), autoincrement=False, nullable=True),
|
|
schema="transactions",
|
|
)
|
|
op.add_column(
|
|
"categories_rules",
|
|
sa.Column("regex", sa.VARCHAR(), autoincrement=False, nullable=True),
|
|
schema="transactions",
|
|
)
|
|
op.add_column(
|
|
"categories_rules",
|
|
sa.Column("date", sa.DATE(), autoincrement=False, nullable=True),
|
|
schema="transactions",
|
|
)
|
|
op.add_column(
|
|
"categories_rules",
|
|
sa.Column(
|
|
"min", sa.NUMERIC(precision=16, scale=2), autoincrement=False, nullable=True
|
|
),
|
|
schema="transactions",
|
|
)
|
|
op.add_column(
|
|
"categories_rules",
|
|
sa.Column("bank", sa.VARCHAR(), autoincrement=False, nullable=True),
|
|
schema="transactions",
|
|
)
|
|
op.drop_constraint(
|
|
op.f("fk_categories_rules_id_rules"),
|
|
"categories_rules",
|
|
schema="transactions",
|
|
type_="foreignkey",
|
|
)
|
|
op.drop_table("rules", schema="transactions")
|
|
# ### end Alembic commands ###
|