@@ -0,0 +1,40 @@
|
||||
"""zootech sklad stock table
|
||||
|
||||
Revision ID: 20260716_0012
|
||||
Revises: 20260716_0011
|
||||
"""
|
||||
|
||||
from typing import Sequence, Union
|
||||
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
revision: str = "20260716_0012"
|
||||
down_revision: Union[str, None] = "20260716_0011"
|
||||
branch_labels: Union[str, Sequence[str], None] = None
|
||||
depends_on: Union[str, Sequence[str], None] = None
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
op.create_table(
|
||||
"zootech_sklad_stock",
|
||||
sa.Column("enterprise_id", sa.String(length=36), nullable=False),
|
||||
sa.Column("component_id", sa.String(length=36), nullable=False),
|
||||
sa.Column("total_kg", sa.Float(), nullable=False),
|
||||
sa.Column("inflow_kg", sa.Float(), nullable=False),
|
||||
sa.Column("sort_order", sa.Integer(), nullable=False),
|
||||
sa.Column("version", sa.Integer(), nullable=False),
|
||||
sa.Column("content_hash", sa.String(length=64), nullable=False),
|
||||
sa.Column("is_deleted", sa.Boolean(), nullable=False),
|
||||
sa.Column("payload_json", sa.Text(), nullable=True),
|
||||
sa.Column("created_at", sa.DateTime(timezone=True), nullable=False),
|
||||
sa.Column("updated_at", sa.DateTime(timezone=True), nullable=False),
|
||||
sa.PrimaryKeyConstraint("component_id"),
|
||||
sa.UniqueConstraint("enterprise_id", "component_id", name="uq_zootech_sklad_stock_ent_comp"),
|
||||
)
|
||||
op.create_index("idx_zootech_sklad_stock_enterprise", "zootech_sklad_stock", ["enterprise_id"])
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
op.drop_index("idx_zootech_sklad_stock_enterprise", table_name="zootech_sklad_stock")
|
||||
op.drop_table("zootech_sklad_stock")
|
||||
@@ -0,0 +1,251 @@
|
||||
"""Revision ID: 20260716_0013
|
||||
Revises: 20260716_0012
|
||||
"""
|
||||
|
||||
from typing import Sequence, Union
|
||||
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
revision: str = "20260716_0013"
|
||||
down_revision: Union[str, None] = "20260716_0012"
|
||||
branch_labels: Union[str, Sequence[str], None] = None
|
||||
depends_on: Union[str, Sequence[str], None] = None
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
op.create_table(
|
||||
"zootech_lab_animal_profile",
|
||||
sa.Column("enterprise_id", sa.String(length=36), nullable=False),
|
||||
sa.Column("id", sa.String(length=36), nullable=False),
|
||||
sa.Column("profile_key", sa.String(length=64), nullable=False),
|
||||
sa.Column("label", sa.String(length=200), nullable=False),
|
||||
sa.Column("ration_type", sa.String(length=10), nullable=False),
|
||||
sa.Column("mass_kg", sa.Float(), nullable=True),
|
||||
sa.Column("milk_yield_kg", sa.Float(), nullable=True),
|
||||
sa.Column("external_no", sa.Integer(), nullable=True),
|
||||
sa.Column("norms_method", sa.String(length=20), nullable=False, server_default="wesp"),
|
||||
sa.Column("norms_params_json", sa.Text(), nullable=True),
|
||||
sa.Column("version", sa.Integer(), nullable=False, server_default="1"),
|
||||
sa.Column("created_by", sa.String(length=50), nullable=False, server_default="system"),
|
||||
sa.Column("updated_by", sa.String(length=50), nullable=False, server_default="system"),
|
||||
sa.Column("is_deleted", sa.Boolean(), nullable=False, server_default=sa.false()),
|
||||
sa.Column("deleted_at", sa.DateTime(timezone=True), nullable=True),
|
||||
sa.Column("deleted_by", sa.String(length=50), nullable=True),
|
||||
sa.Column("created_at", sa.DateTime(timezone=True), nullable=False),
|
||||
sa.Column("updated_at", sa.DateTime(timezone=True), nullable=False),
|
||||
sa.PrimaryKeyConstraint("id"),
|
||||
sa.UniqueConstraint("enterprise_id", "id", name="uq_zootech_lab_profile_ent_id"),
|
||||
sa.UniqueConstraint("enterprise_id", "profile_key", name="uq_zootech_lab_profile_ent_key"),
|
||||
)
|
||||
op.create_index("idx_zootech_lab_animal_profile_enterprise", "zootech_lab_animal_profile", ["enterprise_id"])
|
||||
op.create_index("idx_zootech_lab_animal_profile_ration_type", "zootech_lab_animal_profile", ["ration_type"])
|
||||
|
||||
op.create_table(
|
||||
"zootech_lab_profile_norm",
|
||||
sa.Column("enterprise_id", sa.String(length=36), nullable=False),
|
||||
sa.Column("id", sa.String(length=36), nullable=False),
|
||||
sa.Column("profile_id", sa.String(length=36), nullable=False),
|
||||
sa.Column("indicator_key", sa.String(length=64), nullable=False),
|
||||
sa.Column("min_value", sa.Float(), nullable=True),
|
||||
sa.Column("max_value", sa.Float(), nullable=True),
|
||||
sa.PrimaryKeyConstraint("id"),
|
||||
sa.UniqueConstraint(
|
||||
"enterprise_id",
|
||||
"profile_id",
|
||||
"indicator_key",
|
||||
name="uq_zootech_lab_profile_norm",
|
||||
),
|
||||
)
|
||||
op.create_index("idx_zootech_lab_profile_norm_enterprise", "zootech_lab_profile_norm", ["enterprise_id"])
|
||||
op.create_index("idx_zootech_lab_profile_norm_profile", "zootech_lab_profile_norm", ["profile_id"])
|
||||
|
||||
op.create_table(
|
||||
"zootech_lab_component_nutrient_value",
|
||||
sa.Column("enterprise_id", sa.String(length=36), nullable=False),
|
||||
sa.Column("id", sa.String(length=36), nullable=False),
|
||||
sa.Column("component_id", sa.String(length=36), nullable=False),
|
||||
sa.Column("nutrient_key", sa.String(length=80), nullable=False),
|
||||
sa.Column("value", sa.Float(), nullable=True),
|
||||
sa.PrimaryKeyConstraint("id"),
|
||||
sa.UniqueConstraint(
|
||||
"enterprise_id",
|
||||
"component_id",
|
||||
"nutrient_key",
|
||||
name="uq_zootech_lab_comp_nutrient",
|
||||
),
|
||||
)
|
||||
op.create_index(
|
||||
"idx_zootech_lab_component_nutrient_enterprise",
|
||||
"zootech_lab_component_nutrient_value",
|
||||
["enterprise_id"],
|
||||
)
|
||||
op.create_index(
|
||||
"idx_zootech_lab_component_nutrient_component",
|
||||
"zootech_lab_component_nutrient_value",
|
||||
["component_id"],
|
||||
)
|
||||
|
||||
op.create_table(
|
||||
"zootech_lab_recipe_ration",
|
||||
sa.Column("enterprise_id", sa.String(length=36), nullable=False),
|
||||
sa.Column("recipe_id", sa.String(length=36), nullable=False),
|
||||
sa.Column("animal_profile_id", sa.String(length=36), nullable=True),
|
||||
sa.Column("calc_engine", sa.String(length=20), nullable=True),
|
||||
sa.Column("seed_source", sa.String(length=32), nullable=True),
|
||||
sa.Column("calculated_at", sa.DateTime(timezone=True), nullable=True),
|
||||
sa.Column("version", sa.Integer(), nullable=False, server_default="1"),
|
||||
sa.Column("created_by", sa.String(length=50), nullable=False, server_default="system"),
|
||||
sa.Column("updated_by", sa.String(length=50), nullable=False, server_default="system"),
|
||||
sa.Column("is_deleted", sa.Boolean(), nullable=False, server_default=sa.false()),
|
||||
sa.Column("deleted_at", sa.DateTime(timezone=True), nullable=True),
|
||||
sa.Column("deleted_by", sa.String(length=50), nullable=True),
|
||||
sa.Column("created_at", sa.DateTime(timezone=True), nullable=False),
|
||||
sa.Column("updated_at", sa.DateTime(timezone=True), nullable=False),
|
||||
sa.PrimaryKeyConstraint("enterprise_id", "recipe_id"),
|
||||
)
|
||||
op.create_index("idx_zootech_lab_recipe_ration_profile", "zootech_lab_recipe_ration", ["animal_profile_id"])
|
||||
|
||||
op.create_table(
|
||||
"zootech_lab_ration_line",
|
||||
sa.Column("enterprise_id", sa.String(length=36), nullable=False),
|
||||
sa.Column("id", sa.String(length=36), nullable=False),
|
||||
sa.Column("recipe_id", sa.String(length=36), nullable=False),
|
||||
sa.Column("component_id", sa.String(length=36), nullable=True),
|
||||
sa.Column("row_index", sa.Integer(), nullable=False, server_default="0"),
|
||||
sa.Column("ingredient_name", sa.String(length=200), nullable=True),
|
||||
sa.Column("daily_kg", sa.Float(), nullable=True),
|
||||
sa.Column("in_ration", sa.Boolean(), nullable=False, server_default=sa.true()),
|
||||
sa.Column("in_compound", sa.Boolean(), nullable=False, server_default=sa.false()),
|
||||
sa.Column("version", sa.Integer(), nullable=False, server_default="1"),
|
||||
sa.Column("created_by", sa.String(length=50), nullable=False, server_default="system"),
|
||||
sa.Column("updated_by", sa.String(length=50), nullable=False, server_default="system"),
|
||||
sa.Column("is_deleted", sa.Boolean(), nullable=False, server_default=sa.false()),
|
||||
sa.Column("deleted_at", sa.DateTime(timezone=True), nullable=True),
|
||||
sa.Column("deleted_by", sa.String(length=50), nullable=True),
|
||||
sa.Column("created_at", sa.DateTime(timezone=True), nullable=False),
|
||||
sa.Column("updated_at", sa.DateTime(timezone=True), nullable=False),
|
||||
sa.PrimaryKeyConstraint("id"),
|
||||
sa.UniqueConstraint("enterprise_id", "id", name="uq_zootech_lab_ration_line_ent_id"),
|
||||
)
|
||||
op.create_index("idx_zootech_lab_ration_line_enterprise", "zootech_lab_ration_line", ["enterprise_id"])
|
||||
op.create_index("idx_zootech_lab_ration_line_recipe", "zootech_lab_ration_line", ["recipe_id"])
|
||||
|
||||
op.create_table(
|
||||
"zootech_lab_ration_calc_total",
|
||||
sa.Column("enterprise_id", sa.String(length=36), nullable=False),
|
||||
sa.Column("id", sa.String(length=36), nullable=False),
|
||||
sa.Column("recipe_id", sa.String(length=36), nullable=False),
|
||||
sa.Column("scope", sa.String(length=16), nullable=False, server_default="ration"),
|
||||
sa.Column("metric_key", sa.String(length=32), nullable=False),
|
||||
sa.Column("label", sa.String(length=128), nullable=False, server_default=""),
|
||||
sa.Column("value", sa.Float(), nullable=True),
|
||||
sa.Column("sort_order", sa.Integer(), nullable=False, server_default="0"),
|
||||
sa.PrimaryKeyConstraint("id"),
|
||||
sa.UniqueConstraint("enterprise_id", "id", name="uq_zootech_lab_calc_total_ent_id"),
|
||||
)
|
||||
op.create_index("idx_zootech_lab_calc_total_recipe", "zootech_lab_ration_calc_total", ["recipe_id"])
|
||||
|
||||
op.create_table(
|
||||
"zootech_lab_ration_calc_indicator",
|
||||
sa.Column("enterprise_id", sa.String(length=36), nullable=False),
|
||||
sa.Column("id", sa.String(length=36), nullable=False),
|
||||
sa.Column("recipe_id", sa.String(length=36), nullable=False),
|
||||
sa.Column("scope", sa.String(length=16), nullable=False, server_default="ration"),
|
||||
sa.Column("indicator_key", sa.String(length=64), nullable=True),
|
||||
sa.Column("label", sa.String(length=128), nullable=False, server_default=""),
|
||||
sa.Column("unit", sa.String(length=32), nullable=False, server_default=""),
|
||||
sa.Column("min_value", sa.Float(), nullable=True),
|
||||
sa.Column("max_value", sa.Float(), nullable=True),
|
||||
sa.Column("content", sa.Float(), nullable=True),
|
||||
sa.Column("diff", sa.Float(), nullable=True),
|
||||
sa.Column("sort_order", sa.Integer(), nullable=False, server_default="0"),
|
||||
sa.PrimaryKeyConstraint("id"),
|
||||
sa.UniqueConstraint("enterprise_id", "id", name="uq_zootech_lab_calc_ind_ent_id"),
|
||||
)
|
||||
op.create_index("idx_zootech_lab_calc_indicator_recipe", "zootech_lab_ration_calc_indicator", ["recipe_id"])
|
||||
|
||||
op.create_table(
|
||||
"zootech_lab_ration_compound_line",
|
||||
sa.Column("enterprise_id", sa.String(length=36), nullable=False),
|
||||
sa.Column("id", sa.String(length=36), nullable=False),
|
||||
sa.Column("recipe_id", sa.String(length=36), nullable=False),
|
||||
sa.Column("row_index", sa.Integer(), nullable=False, server_default="0"),
|
||||
sa.Column("ingredient_name", sa.String(length=200), nullable=True),
|
||||
sa.Column("daily_kg", sa.Float(), nullable=True),
|
||||
sa.Column("share_pct", sa.Float(), nullable=True),
|
||||
sa.PrimaryKeyConstraint("id"),
|
||||
sa.UniqueConstraint("enterprise_id", "id", name="uq_zootech_lab_compound_line_ent_id"),
|
||||
)
|
||||
op.create_index("idx_zootech_lab_compound_line_recipe", "zootech_lab_ration_compound_line", ["recipe_id"])
|
||||
|
||||
op.create_table(
|
||||
"zootech_lab_racion_normy_moskwa",
|
||||
sa.Column("id", sa.String(length=36), nullable=False),
|
||||
sa.Column("npitv", sa.Integer(), nullable=False),
|
||||
sa.Column("pom", sa.Integer(), nullable=False, server_default="1"),
|
||||
sa.Column("koef", sa.Float(), nullable=True),
|
||||
sa.Column("popr_k_json", sa.Text(), nullable=True),
|
||||
sa.PrimaryKeyConstraint("id"),
|
||||
sa.UniqueConstraint("npitv", "pom", name="uq_zootech_lab_racion_moskwa_npitv_pom"),
|
||||
)
|
||||
op.create_index("idx_zootech_lab_racion_moskwa_npitv", "zootech_lab_racion_normy_moskwa", ["npitv"])
|
||||
|
||||
op.create_table(
|
||||
"zootech_lab_racion_normy_moskwa_meta",
|
||||
sa.Column("id", sa.String(length=36), nullable=False),
|
||||
sa.Column("meta_key", sa.String(length=32), nullable=False),
|
||||
sa.Column("meta_json", sa.Text(), nullable=True),
|
||||
sa.PrimaryKeyConstraint("id"),
|
||||
sa.UniqueConstraint("meta_key"),
|
||||
)
|
||||
|
||||
op.create_table(
|
||||
"zootech_lab_racion_normy_piter",
|
||||
sa.Column("id", sa.String(length=36), nullable=False),
|
||||
sa.Column("npitv", sa.Integer(), nullable=False),
|
||||
sa.Column("konc", sa.Float(), nullable=False),
|
||||
sa.Column("udoy", sa.Float(), nullable=False),
|
||||
sa.Column("normy_json", sa.Text(), nullable=True),
|
||||
sa.PrimaryKeyConstraint("id"),
|
||||
sa.UniqueConstraint("npitv", "konc", "udoy", name="uq_zootech_lab_racion_piter_npitv_konc_udoy"),
|
||||
)
|
||||
op.create_index("idx_zootech_lab_racion_piter_npitv", "zootech_lab_racion_normy_piter", ["npitv"])
|
||||
|
||||
op.create_table(
|
||||
"zootech_lab_racion_normy_piter_meta",
|
||||
sa.Column("id", sa.String(length=36), nullable=False),
|
||||
sa.Column("meta_key", sa.String(length=32), nullable=False),
|
||||
sa.Column("meta_json", sa.Text(), nullable=True),
|
||||
sa.PrimaryKeyConstraint("id"),
|
||||
sa.UniqueConstraint("meta_key"),
|
||||
)
|
||||
|
||||
op.create_table(
|
||||
"zootech_lab_racion_normy_info",
|
||||
sa.Column("id", sa.String(length=36), nullable=False),
|
||||
sa.Column("nperem", sa.Integer(), nullable=False),
|
||||
sa.Column("znachenie_json", sa.Text(), nullable=True),
|
||||
sa.PrimaryKeyConstraint("id"),
|
||||
sa.UniqueConstraint("nperem"),
|
||||
)
|
||||
op.create_index("idx_zootech_lab_racion_info_nperem", "zootech_lab_racion_normy_info", ["nperem"])
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
for table in (
|
||||
"zootech_lab_racion_normy_info",
|
||||
"zootech_lab_racion_normy_piter_meta",
|
||||
"zootech_lab_racion_normy_piter",
|
||||
"zootech_lab_racion_normy_moskwa_meta",
|
||||
"zootech_lab_racion_normy_moskwa",
|
||||
"zootech_lab_ration_compound_line",
|
||||
"zootech_lab_ration_calc_indicator",
|
||||
"zootech_lab_ration_calc_total",
|
||||
"zootech_lab_ration_line",
|
||||
"zootech_lab_recipe_ration",
|
||||
"zootech_lab_component_nutrient_value",
|
||||
"zootech_lab_profile_norm",
|
||||
"zootech_lab_animal_profile",
|
||||
):
|
||||
op.drop_table(table)
|
||||
Reference in New Issue
Block a user