Product list / detail / router fully working.
Need to test the sale / reports
This commit is contained in:
@ -21,10 +21,10 @@ branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade():
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
def update_sale_categories():
|
||||
product = table(
|
||||
"products",
|
||||
column("product_id", postgresql.UUID(as_uuid=True)),
|
||||
column("sale_category_id", postgresql.UUID(as_uuid=True)),
|
||||
column("sale_category_name", sa.Unicode(length=255)),
|
||||
)
|
||||
@ -40,7 +40,12 @@ def upgrade():
|
||||
}
|
||||
)
|
||||
)
|
||||
with op.batch_alter_table("products") as batch_op:
|
||||
batch_op.alter_column("sale_category_id", nullable=False)
|
||||
batch_op.drop_column("sale_category_name")
|
||||
|
||||
|
||||
def update_section_printers():
|
||||
section_printer = table(
|
||||
"section_printers",
|
||||
column("section_id", postgresql.UUID(as_uuid=True)),
|
||||
@ -66,75 +71,8 @@ def upgrade():
|
||||
batch_op.alter_column("printer_id", nullable=False)
|
||||
batch_op.drop_column("printer_name")
|
||||
|
||||
with op.batch_alter_table("products") as batch_op:
|
||||
batch_op.alter_column("sale_category_id", nullable=False)
|
||||
batch_op.drop_column("sale_category_name")
|
||||
|
||||
# Migration to temporal products
|
||||
op.rename_table("products", "product_histories")
|
||||
with op.batch_alter_table("product_histories") as batch_op:
|
||||
batch_op.add_column(sa.Column("valid_from", sa.Date(), nullable=True))
|
||||
batch_op.add_column(sa.Column("valid_till", sa.Date(), nullable=True))
|
||||
batch_op.drop_column("is_active")
|
||||
|
||||
op.create_table(
|
||||
"product_versions",
|
||||
sa.Column("id", postgresql.UUID(as_uuid=True), server_default=sa.text("gen_random_uuid()"), nullable=False),
|
||||
sa.Column("version_id", postgresql.UUID(as_uuid=True), nullable=False),
|
||||
sa.ForeignKeyConstraint(
|
||||
["version_id"], ["product_histories.id"], name=op.f("fk_product_versions_version_id_product_histories")
|
||||
),
|
||||
sa.PrimaryKeyConstraint("id", name=op.f("pk_product_versions")),
|
||||
sa.UniqueConstraint("id", "version_id", name=op.f("uq_product_versions_id")),
|
||||
)
|
||||
op.drop_constraint("fk_inventories_product_id_products", "inventories", type_="foreignkey")
|
||||
op.create_foreign_key(
|
||||
op.f("fk_inventories_product_id_product_versions"), "inventories", "product_versions", ["product_id"], ["id"]
|
||||
)
|
||||
|
||||
pv = table(
|
||||
"product_versions",
|
||||
column("id", postgresql.UUID(as_uuid=True)),
|
||||
column("version_id", postgresql.UUID(as_uuid=True)),
|
||||
)
|
||||
|
||||
prod = table(
|
||||
"product_histories",
|
||||
column("id", postgresql.UUID(as_uuid=True)),
|
||||
column("name", sa.Unicode(length=255)),
|
||||
column("units", sa.Unicode(length=255)),
|
||||
column("valid_from", sa.Date()),
|
||||
column("valid_till", sa.Date()),
|
||||
)
|
||||
op.execute(pv.insert().from_select([pv.c.id, pv.c.version_id], select([prod.c.id, prod.c.id.label("vid")])))
|
||||
|
||||
op.alter_column("modifier_categories_products", "modifier_categories_id", new_column_name="modifier_category_id")
|
||||
op.drop_constraint("uq_modifier_categories_products_product_id", "modifier_categories_products", type_="unique")
|
||||
op.create_unique_constraint(
|
||||
op.f("uq_modifier_categories_products_product_id"),
|
||||
"modifier_categories_products",
|
||||
["product_id", "modifier_category_id"],
|
||||
)
|
||||
|
||||
op.drop_constraint(
|
||||
"fk_modifier_categories_products_product_id_products", "modifier_categories_products", type_="foreignkey"
|
||||
)
|
||||
op.create_foreign_key(
|
||||
op.f("fk_modifier_categories_products_product_id_product_versions"),
|
||||
"modifier_categories_products",
|
||||
"product_versions",
|
||||
["product_id"],
|
||||
["id"],
|
||||
)
|
||||
op.create_exclude_constraint(
|
||||
"uq_product_histories_name",
|
||||
"product_histories",
|
||||
(prod.c.name, "="),
|
||||
(prod.c.units, "="),
|
||||
(func.daterange(prod.c.valid_from, prod.c.valid_till, text("'[]'")), "&&"),
|
||||
)
|
||||
op.drop_constraint("uq_products_name", "product_histories", type_="unique")
|
||||
|
||||
def add_all_roles_to_owner():
|
||||
r = table(
|
||||
"roles",
|
||||
column("id", postgresql.UUID(as_uuid=True)),
|
||||
@ -159,6 +97,92 @@ def upgrade():
|
||||
)
|
||||
.on_conflict_do_nothing(),
|
||||
)
|
||||
|
||||
|
||||
def upgrade():
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
update_sale_categories()
|
||||
update_section_printers()
|
||||
|
||||
# Migration to temporal products
|
||||
op.drop_constraint("fk_inventories_product_id_products", "inventories", type_="foreignkey")
|
||||
op.drop_constraint(
|
||||
"fk_modifier_categories_products_product_id_products", "modifier_categories_products", type_="foreignkey"
|
||||
)
|
||||
op.drop_constraint("uq_products_name", "products", type_="unique")
|
||||
op.drop_constraint("pk_products", "products", type_="primary")
|
||||
op.rename_table("products", "product_versions")
|
||||
with op.batch_alter_table("product_versions") as batch_op:
|
||||
batch_op.add_column(sa.Column("product_id", postgresql.UUID(as_uuid=True), nullable=True)),
|
||||
batch_op.add_column(sa.Column("valid_from", sa.Date(), nullable=True))
|
||||
batch_op.add_column(sa.Column("valid_till", sa.Date(), nullable=True))
|
||||
batch_op.drop_column("is_active")
|
||||
batch_op.create_primary_key("pk_product_versions", ["id"])
|
||||
|
||||
prod_v = table(
|
||||
"product_versions",
|
||||
column("id", postgresql.UUID(as_uuid=True)),
|
||||
column("product_id", postgresql.UUID(as_uuid=True)),
|
||||
)
|
||||
|
||||
op.execute(prod_v.update(values={"product_id": prod_v.c.id}))
|
||||
op.create_table(
|
||||
"products",
|
||||
sa.Column("id", postgresql.UUID(as_uuid=True), server_default=sa.text("gen_random_uuid()"), nullable=False),
|
||||
# sa.Column("version_id", postgresql.UUID(as_uuid=True), nullable=False),
|
||||
# sa.ForeignKeyConstraint(
|
||||
# ["version_id"], ["product_versions.id"], name=op.f("fk_products_version_id_product_versions")
|
||||
# ),
|
||||
sa.PrimaryKeyConstraint("id", name=op.f("pk_products")),
|
||||
# sa.UniqueConstraint("id", "version_id", name=op.f("uq_products_id")),
|
||||
)
|
||||
op.alter_column("product_versions", "product_id", nullable=False)
|
||||
|
||||
prod = table(
|
||||
"product_versions",
|
||||
column("id", postgresql.UUID(as_uuid=True)),
|
||||
column("name", sa.Unicode(length=255)),
|
||||
column("units", sa.Unicode(length=255)),
|
||||
column("valid_from", sa.Date()),
|
||||
column("valid_till", sa.Date()),
|
||||
)
|
||||
|
||||
pv = table(
|
||||
"products",
|
||||
column("id", postgresql.UUID(as_uuid=True)),
|
||||
)
|
||||
|
||||
op.execute(pv.insert().from_select([pv.c.id], select([prod.c.id])))
|
||||
|
||||
op.create_foreign_key(
|
||||
op.f("fk_product_versions_product_id_products"), "product_versions", "products", ["product_id"], ["id"]
|
||||
)
|
||||
|
||||
op.create_foreign_key(op.f("fk_inventories_product_id_products"), "inventories", "products", ["product_id"], ["id"])
|
||||
op.create_foreign_key(
|
||||
op.f("fk_modifier_categories_products_product_id_products"),
|
||||
"modifier_categories_products",
|
||||
"products",
|
||||
["product_id"],
|
||||
["id"],
|
||||
)
|
||||
|
||||
op.alter_column("modifier_categories_products", "modifier_categories_id", new_column_name="modifier_category_id")
|
||||
op.drop_constraint("uq_modifier_categories_products_product_id", "modifier_categories_products", type_="unique")
|
||||
op.create_unique_constraint(
|
||||
op.f("uq_modifier_categories_products_product_id"),
|
||||
"modifier_categories_products",
|
||||
["product_id", "modifier_category_id"],
|
||||
)
|
||||
|
||||
op.create_exclude_constraint(
|
||||
"uq_product_versions_name",
|
||||
"product_versions",
|
||||
(prod.c.name, "="),
|
||||
(prod.c.units, "="),
|
||||
(func.daterange(prod.c.valid_from, prod.c.valid_till, text("'[]'")), "&&"),
|
||||
)
|
||||
add_all_roles_to_owner()
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user