feat: 新增产品生命周期阶段字段lifecycle_phase与售后工序词表
This commit is contained in:
@ -0,0 +1,45 @@
|
||||
"""add_product_lifecycle_phase
|
||||
|
||||
Revision ID: i1j2k3l4m5n6
|
||||
Revises: h1h2h3h4h5h6
|
||||
Create Date: 2026-09-14
|
||||
|
||||
产品生命周期阶段(lifecycle_phase)
|
||||
--------------------------------
|
||||
用于区分「生产阶段的测试(发货测试)」与「出库后再次返厂的售后维修」。
|
||||
|
||||
存量数据一律回填 'PRODUCTION'(历史产品视为从未出库回流);
|
||||
新数据由 SQLAlchemy 端 default 提供,双保险。
|
||||
"""
|
||||
from typing import Sequence, Union
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
revision: str = "i1j2k3l4m5n6"
|
||||
down_revision: Union[str, None] = "h1h2h3h4h5h6"
|
||||
branch_labels: Union[str, Sequence[str], None] = None
|
||||
depends_on: Union[str, Sequence[str], None] = None
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
op.add_column(
|
||||
"products",
|
||||
sa.Column(
|
||||
"lifecycle_phase",
|
||||
sa.String(20),
|
||||
nullable=False,
|
||||
server_default="PRODUCTION",
|
||||
comment="生命周期阶段: PRODUCTION(生产制造) | AFTER_SALES(出库后返厂售后)",
|
||||
),
|
||||
)
|
||||
# 存量数据回填:历史产品从未出库回流,统一视为生产阶段
|
||||
op.execute("UPDATE products SET lifecycle_phase = 'PRODUCTION' WHERE lifecycle_phase IS NULL")
|
||||
# 加索引:售后设备排查(按阶段筛选)会高频用到
|
||||
op.create_index(
|
||||
"ix_products_lifecycle_phase", "products", ["lifecycle_phase"], unique=False,
|
||||
)
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
op.drop_index("ix_products_lifecycle_phase", table_name="products")
|
||||
op.drop_column("products", "lifecycle_phase")
|
||||
Reference in New Issue
Block a user