142 lines
6.6 KiB
Python
142 lines
6.6 KiB
Python
"""pricelist: initial
|
|
|
|
Revision ID: 58ab9b6a8839
|
|
Revises:
|
|
Create Date: 2022-02-23 14:45:30.563647
|
|
|
|
"""
|
|
from alembic import op
|
|
import sqlalchemy as sa
|
|
import flaschengeist
|
|
|
|
|
|
# revision identifiers, used by Alembic.
|
|
revision = "58ab9b6a8839"
|
|
down_revision = None
|
|
branch_labels = ("pricelist",)
|
|
depends_on = "flaschengeist"
|
|
|
|
|
|
def upgrade():
|
|
# ### commands auto generated by Alembic - please adjust! ###
|
|
op.create_table(
|
|
"drink_extra_ingredient",
|
|
sa.Column("id", flaschengeist.models.Serial(), nullable=False),
|
|
sa.Column("name", sa.String(length=30), nullable=False),
|
|
sa.Column("price", sa.Numeric(precision=5, scale=2, asdecimal=False), nullable=True),
|
|
sa.PrimaryKeyConstraint("id", name=op.f("pk_drink_extra_ingredient")),
|
|
sa.UniqueConstraint("name", name=op.f("uq_drink_extra_ingredient_name")),
|
|
)
|
|
op.create_table(
|
|
"drink_tag",
|
|
sa.Column("id", flaschengeist.models.Serial(), nullable=False),
|
|
sa.Column("name", sa.String(length=30), nullable=False),
|
|
sa.Column("color", sa.String(length=7), nullable=False),
|
|
sa.PrimaryKeyConstraint("id", name=op.f("pk_drink_tag")),
|
|
sa.UniqueConstraint("name", name=op.f("uq_drink_tag_name")),
|
|
)
|
|
op.create_table(
|
|
"drink_type",
|
|
sa.Column("id", flaschengeist.models.Serial(), nullable=False),
|
|
sa.Column("name", sa.String(length=30), nullable=False),
|
|
sa.PrimaryKeyConstraint("id", name=op.f("pk_drink_type")),
|
|
sa.UniqueConstraint("name", name=op.f("uq_drink_type_name")),
|
|
)
|
|
op.create_table(
|
|
"drink",
|
|
sa.Column("id", flaschengeist.models.Serial(), nullable=False),
|
|
sa.Column("article_id", sa.String(length=64), nullable=True),
|
|
sa.Column("package_size", sa.Integer(), nullable=True),
|
|
sa.Column("name", sa.String(length=60), nullable=False),
|
|
sa.Column("volume", sa.Numeric(precision=5, scale=2, asdecimal=False), nullable=True),
|
|
sa.Column("cost_per_volume", sa.Numeric(precision=5, scale=3, asdecimal=False), nullable=True),
|
|
sa.Column("cost_per_package", sa.Numeric(precision=5, scale=3, asdecimal=False), nullable=True),
|
|
sa.Column("receipt", sa.PickleType(), nullable=True),
|
|
sa.Column("type_id", flaschengeist.models.Serial(), nullable=True),
|
|
sa.Column("image_id", flaschengeist.models.Serial(), nullable=True),
|
|
sa.ForeignKeyConstraint(["image_id"], ["image.id"], name=op.f("fk_drink_image_id_image")),
|
|
sa.ForeignKeyConstraint(["type_id"], ["drink_type.id"], name=op.f("fk_drink_type_id_drink_type")),
|
|
sa.PrimaryKeyConstraint("id", name=op.f("pk_drink")),
|
|
)
|
|
op.create_table(
|
|
"drink_ingredient",
|
|
sa.Column("id", flaschengeist.models.Serial(), nullable=False),
|
|
sa.Column("volume", sa.Numeric(precision=5, scale=2, asdecimal=False), nullable=False),
|
|
sa.Column("ingredient_id", flaschengeist.models.Serial(), nullable=True),
|
|
sa.ForeignKeyConstraint(["ingredient_id"], ["drink.id"], name=op.f("fk_drink_ingredient_ingredient_id_drink")),
|
|
sa.PrimaryKeyConstraint("id", name=op.f("pk_drink_ingredient")),
|
|
)
|
|
op.create_table(
|
|
"drink_price_volume",
|
|
sa.Column("id", flaschengeist.models.Serial(), nullable=False),
|
|
sa.Column("drink_id", flaschengeist.models.Serial(), nullable=True),
|
|
sa.Column("volume", sa.Numeric(precision=5, scale=2, asdecimal=False), nullable=True),
|
|
sa.ForeignKeyConstraint(["drink_id"], ["drink.id"], name=op.f("fk_drink_price_volume_drink_id_drink")),
|
|
sa.PrimaryKeyConstraint("id", name=op.f("pk_drink_price_volume")),
|
|
)
|
|
op.create_table(
|
|
"drink_x_tag",
|
|
sa.Column("drink_id", flaschengeist.models.Serial(), nullable=True),
|
|
sa.Column("tag_id", flaschengeist.models.Serial(), nullable=True),
|
|
sa.ForeignKeyConstraint(["drink_id"], ["drink.id"], name=op.f("fk_drink_x_tag_drink_id_drink")),
|
|
sa.ForeignKeyConstraint(["tag_id"], ["drink_tag.id"], name=op.f("fk_drink_x_tag_tag_id_drink_tag")),
|
|
)
|
|
op.create_table(
|
|
"drink_x_type",
|
|
sa.Column("drink_id", flaschengeist.models.Serial(), nullable=True),
|
|
sa.Column("type_id", flaschengeist.models.Serial(), nullable=True),
|
|
sa.ForeignKeyConstraint(["drink_id"], ["drink.id"], name=op.f("fk_drink_x_type_drink_id_drink")),
|
|
sa.ForeignKeyConstraint(["type_id"], ["drink_type.id"], name=op.f("fk_drink_x_type_type_id_drink_type")),
|
|
)
|
|
op.create_table(
|
|
"drink_ingredient_association",
|
|
sa.Column("id", flaschengeist.models.Serial(), nullable=False),
|
|
sa.Column("volume_id", flaschengeist.models.Serial(), nullable=True),
|
|
sa.Column("_drink_ingredient_id", flaschengeist.models.Serial(), nullable=True),
|
|
sa.Column("_extra_ingredient_id", flaschengeist.models.Serial(), nullable=True),
|
|
sa.ForeignKeyConstraint(
|
|
["_drink_ingredient_id"],
|
|
["drink_ingredient.id"],
|
|
name=op.f("fk_drink_ingredient_association__drink_ingredient_id_drink_ingredient"),
|
|
),
|
|
sa.ForeignKeyConstraint(
|
|
["_extra_ingredient_id"],
|
|
["drink_extra_ingredient.id"],
|
|
name=op.f("fk_drink_ingredient_association__extra_ingredient_id_drink_extra_ingredient"),
|
|
),
|
|
sa.ForeignKeyConstraint(
|
|
["volume_id"],
|
|
["drink_price_volume.id"],
|
|
name=op.f("fk_drink_ingredient_association_volume_id_drink_price_volume"),
|
|
),
|
|
sa.PrimaryKeyConstraint("id", name=op.f("pk_drink_ingredient_association")),
|
|
)
|
|
op.create_table(
|
|
"drink_price",
|
|
sa.Column("id", flaschengeist.models.Serial(), nullable=False),
|
|
sa.Column("price", sa.Numeric(precision=5, scale=2, asdecimal=False), nullable=True),
|
|
sa.Column("volume_id", flaschengeist.models.Serial(), nullable=True),
|
|
sa.Column("public", sa.Boolean(), nullable=True),
|
|
sa.Column("description", sa.String(length=30), nullable=True),
|
|
sa.ForeignKeyConstraint(
|
|
["volume_id"], ["drink_price_volume.id"], name=op.f("fk_drink_price_volume_id_drink_price_volume")
|
|
),
|
|
sa.PrimaryKeyConstraint("id", name=op.f("pk_drink_price")),
|
|
)
|
|
# ### end Alembic commands ###
|
|
|
|
|
|
def downgrade():
|
|
# ### commands auto generated by Alembic - please adjust! ###
|
|
op.drop_table("drink_price")
|
|
op.drop_table("drink_ingredient_association")
|
|
op.drop_table("drink_x_type")
|
|
op.drop_table("drink_x_tag")
|
|
op.drop_table("drink_price_volume")
|
|
op.drop_table("drink_ingredient")
|
|
op.drop_table("drink")
|
|
op.drop_table("drink_type")
|
|
op.drop_table("drink_tag")
|
|
op.drop_table("drink_extra_ingredient")
|
|
# ### end Alembic commands ###
|