"""Divide by schemas Revision ID: e455c78df789 Revises: 6b293f78cc97 Create Date: 2023-01-22 23:38:23.266906+00:00 """ from alembic import op import sqlalchemy as sa from sqlalchemy.dialects import postgresql # revision identifiers, used by Alembic. revision = "e455c78df789" down_revision = "6b293f78cc97" branch_labels = None depends_on = None def upgrade() -> None: # ### commands auto generated by Alembic - please adjust! ### op.create_table( "banks", sa.Column("name", sa.String(), nullable=False), sa.Column("BIC", sa.String(length=8), nullable=False), sa.Column( "type", sa.Enum( "checking", "savings", "investment", "mealcard", "VISA", "MASTERCARD", name="accounttype", schema="bank", inherit_schema=True, ), nullable=False, ), sa.PrimaryKeyConstraint("BIC", "type", name=op.f("pk_banks")), sa.UniqueConstraint("name", name=op.f("uq_banks_name")), schema="bank", ) op.create_table( "groups", sa.Column("name", sa.String(), nullable=False), sa.PrimaryKeyConstraint("name", name=op.f("pk_groups")), schema="category", ) op.create_table( "available", sa.Column("name", sa.String(), nullable=False), sa.PrimaryKeyConstraint("name", name=op.f("pk_available")), schema="tag", ) op.create_table( "nordigen", sa.Column("name", sa.Text(), nullable=False), sa.Column("bank_id", sa.String(), nullable=True), sa.Column("requisition_id", sa.String(), nullable=True), sa.Column("invert", sa.Boolean(), nullable=True), sa.ForeignKeyConstraint( ["name"], ["bank.banks.name"], name=op.f("fk_nordigen_name_banks") ), sa.PrimaryKeyConstraint("name", name=op.f("pk_nordigen")), schema="bank", ) op.create_table( "available", sa.Column("name", sa.String(), nullable=False), sa.Column("group", sa.String(), nullable=True), sa.ForeignKeyConstraint( ["group"], ["category.groups.name"], name=op.f("fk_available_group_groups") ), sa.PrimaryKeyConstraint("name", name=op.f("pk_available")), schema="category", ) op.create_table( "rules", sa.Column("id", sa.BigInteger(), nullable=False), sa.Column("tag", sa.String(), nullable=False), sa.ForeignKeyConstraint( ["id"], ["transactions.rules.id"], name=op.f("fk_rules_id_rules"), ondelete="CASCADE", ), sa.ForeignKeyConstraint( ["tag"], ["tag.available.name"], name=op.f("fk_rules_tag_available"), ondelete="CASCADE", ), sa.PrimaryKeyConstraint("id", name=op.f("pk_rules")), schema="tag", ) op.create_table( "rules", sa.Column("id", sa.BigInteger(), nullable=False), sa.Column("name", sa.String(), nullable=False), sa.ForeignKeyConstraint( ["id"], ["transactions.rules.id"], name=op.f("fk_rules_id_rules"), ondelete="CASCADE", ), sa.ForeignKeyConstraint( ["name"], ["category.available.name"], name=op.f("fk_rules_name_available"), ondelete="CASCADE", ), sa.PrimaryKeyConstraint("id", name=op.f("pk_rules")), schema="category", ) op.create_table( "schedules", sa.Column("name", sa.String(), nullable=False), sa.Column( "period", sa.Enum( "daily", "weekly", "monthly", "yearly", name="period", schema="category", inherit_schema=True, ), nullable=True, ), sa.Column("period_multiplier", sa.Integer(), nullable=True), sa.Column("amount", sa.Integer(), nullable=True), sa.ForeignKeyConstraint( ["name"], ["category.available.name"], name=op.f("fk_schedules_name_available"), ondelete="CASCADE", ), sa.PrimaryKeyConstraint("name", name=op.f("pk_schedules")), schema="category", ) op.create_table( "selector", sa.Column("id", sa.BigInteger(), nullable=False), sa.Column( "selector", sa.Enum( "unknown", "nullifier", "vacations", "rules", "algorithm", "manual", name="selector_t", schema="category", inherit_schema=True, ), nullable=False, ), sa.ForeignKeyConstraint( ["id"], ["transactions.categorized.id"], name=op.f("fk_selector_id_categorized"), ondelete="CASCADE", ), sa.PrimaryKeyConstraint("id", name=op.f("pk_selector")), schema="category", ) op.drop_constraint( "fk_categorized_name_categories_available", "categorized", schema="transactions", type_="foreignkey", ) op.create_foreign_key( op.f("fk_categorized_name_available"), "categorized", "available", ["name"], ["name"], source_schema="transactions", referent_schema="category", ondelete="CASCADE", ) op.drop_constraint( "fk_originals_bank_banks", "originals", schema="transactions", type_="foreignkey", ) op.create_foreign_key( op.f("fk_originals_bank_banks"), "originals", "banks", ["bank"], ["name"], source_schema="transactions", referent_schema="bank", ) op.drop_constraint( "fk_tags_tag_tags_available", "tags", schema="transactions", type_="foreignkey" ) op.create_foreign_key( op.f("fk_tags_tag_available"), "tags", "available", ["tag"], ["name"], source_schema="transactions", referent_schema="tag", ) op.drop_table("categories_schedules", schema="transactions") op.drop_table("categories_rules", schema="transactions") op.drop_table("categories_available", schema="transactions") op.drop_table("tag_rules", schema="transactions") op.drop_table("nordigen", schema="transactions") op.drop_table("tags_available", schema="transactions") op.drop_table("banks", schema="transactions") op.drop_table("categories_selector", schema="transactions") op.drop_table("categories_groups", schema="transactions") # ### end Alembic commands ### def downgrade() -> None: # ### commands auto generated by Alembic - please adjust! ### op.drop_constraint( op.f("fk_tags_tag_available"), "tags", schema="transactions", type_="foreignkey" ) op.create_foreign_key( "fk_tags_tag_tags_available", "tags", "tags_available", ["tag"], ["name"], source_schema="transactions", referent_schema="transactions", ) op.drop_constraint( op.f("fk_originals_bank_banks"), "originals", schema="transactions", type_="foreignkey", ) op.create_foreign_key( "fk_originals_bank_banks", "originals", "banks", ["bank"], ["name"], source_schema="transactions", referent_schema="transactions", ) op.drop_constraint( op.f("fk_categorized_name_available"), "categorized", schema="transactions", type_="foreignkey", ) op.create_foreign_key( "fk_categorized_name_categories_available", "categorized", "categories_available", ["name"], ["name"], source_schema="transactions", referent_schema="transactions", ondelete="CASCADE", ) op.create_table( "categories_groups", sa.Column("name", sa.VARCHAR(), autoincrement=False, nullable=False), sa.PrimaryKeyConstraint("name", name="pk_categories_groups"), schema="transactions", postgresql_ignore_search_path=False, ) op.create_table( "categories_selector", sa.Column("id", sa.BIGINT(), autoincrement=False, nullable=False), sa.Column( "selector", postgresql.ENUM( "unknown", "nullifier", "vacations", "rules", "algorithm", "manual", name="selector", schema="transactions", ), autoincrement=False, nullable=False, ), sa.ForeignKeyConstraint( ["id"], ["transactions.categorized.id"], name="fk_categories_selector_id_categorized", ondelete="CASCADE", ), sa.PrimaryKeyConstraint("id", name="pk_categories_selector"), schema="transactions", ) op.create_table( "banks", sa.Column("name", sa.VARCHAR(), autoincrement=False, nullable=False), sa.Column("BIC", sa.VARCHAR(length=8), autoincrement=False, nullable=False), sa.Column( "type", postgresql.ENUM( "checking", "savings", "investment", "mealcard", "VISA", "MASTERCARD", name="accounttype", schema="transactions", ), autoincrement=False, nullable=False, ), sa.PrimaryKeyConstraint("BIC", "type", name="pk_banks"), sa.UniqueConstraint("name", name="uq_banks_name"), schema="transactions", postgresql_ignore_search_path=False, ) op.create_table( "tags_available", sa.Column("name", sa.VARCHAR(), autoincrement=False, nullable=False), sa.PrimaryKeyConstraint("name", name="pk_tags_available"), schema="transactions", postgresql_ignore_search_path=False, ) op.create_table( "nordigen", sa.Column("name", sa.TEXT(), autoincrement=False, nullable=False), sa.Column("bank_id", sa.VARCHAR(), autoincrement=False, nullable=True), sa.Column("requisition_id", sa.VARCHAR(), autoincrement=False, nullable=True), sa.Column("invert", sa.BOOLEAN(), autoincrement=False, nullable=True), sa.ForeignKeyConstraint( ["name"], ["transactions.banks.name"], name="fk_nordigen_name_banks" ), sa.PrimaryKeyConstraint("name", name="pk_nordigen"), schema="transactions", ) op.create_table( "tag_rules", sa.Column( "id", sa.BIGINT(), server_default=sa.text( "nextval('transactions.tag_rules_id_seq'::regclass)" ), autoincrement=True, nullable=False, ), sa.Column("tag", sa.VARCHAR(), autoincrement=False, nullable=False), sa.ForeignKeyConstraint( ["id"], ["transactions.rules.id"], name="fk_tag_rules_id_rules", ondelete="CASCADE", ), sa.ForeignKeyConstraint( ["tag"], ["transactions.tags_available.name"], name="fk_tag_rules_tag_tags_available", ondelete="CASCADE", ), sa.PrimaryKeyConstraint("id", name="pk_tag_rules"), schema="transactions", ) op.create_table( "categories_rules", sa.Column("name", sa.VARCHAR(), autoincrement=False, nullable=False), sa.Column( "id", sa.BIGINT(), server_default=sa.text( "nextval('transactions.categories_rules_id_seq'::regclass)" ), autoincrement=True, nullable=False, ), sa.ForeignKeyConstraint( ["id"], ["transactions.rules.id"], name="fk_categories_rules_id_rules", ondelete="CASCADE", ), sa.ForeignKeyConstraint( ["name"], ["transactions.categories_available.name"], name="fk_categories_rules_name_categories_available", ondelete="CASCADE", ), sa.PrimaryKeyConstraint("id", name="pk_categories_rules"), schema="transactions", ) op.create_table( "categories_available", sa.Column("name", sa.VARCHAR(), autoincrement=False, nullable=False), sa.Column("group", sa.VARCHAR(), autoincrement=False, nullable=True), sa.ForeignKeyConstraint( ["group"], ["transactions.categories_groups.name"], name="fk_categories_available_group_categories_groups", ), sa.PrimaryKeyConstraint("name", name="pk_categories_available"), schema="transactions", postgresql_ignore_search_path=False, ) op.create_table( "categories_schedules", sa.Column("name", sa.VARCHAR(), autoincrement=False, nullable=False), sa.Column( "period", postgresql.ENUM( "daily", "weekly", "monthly", "yearly", name="period", schema="transactions", ), autoincrement=False, nullable=True, ), sa.Column( "period_multiplier", sa.INTEGER(), autoincrement=False, nullable=True ), sa.Column("amount", sa.INTEGER(), autoincrement=False, nullable=True), sa.ForeignKeyConstraint( ["name"], ["transactions.categories_available.name"], name="fk_categories_schedules_name_categories_available", ondelete="CASCADE", ), sa.PrimaryKeyConstraint("name", name="pk_categories_schedules"), schema="transactions", ) op.drop_table("selector", schema="category") op.drop_table("schedules", schema="category") op.drop_table("rules", schema="category") op.drop_table("rules", schema="tag") op.drop_table("available", schema="category") op.drop_table("nordigen", schema="bank") op.drop_table("available", schema="tag") op.drop_table("groups", schema="category") op.drop_table("banks", schema="bank") # ### end Alembic commands ###