material_manage_system/scripts/upgrades/2026-10-12-material-partner-roles.sql

21 lines
1.4 KiB
SQL

-- 物料默认供应商、制造商及伙伴制造商身份。选择目标数据库后执行一次。
-- 前置条件:已完成公司隔离升级,存在 schema_migrations。
-- 不修改已有伙伴身份;物料新字段默认 NULL。
SET NAMES utf8mb4;
ALTER TABLE organization_partners
ADD COLUMN is_manufacturer BOOLEAN NOT NULL DEFAULT FALSE AFTER is_supplier,
ADD UNIQUE KEY uk_organization_partners_org_id(organization_id,id);
ALTER TABLE materials
ADD COLUMN supplier_id BIGINT NULL COMMENT 'Default supplier organization_partner ID' AFTER manufacturer_model,
ADD COLUMN manufacturer_id BIGINT NULL COMMENT 'Manufacturer organization_partner ID' AFTER supplier_id,
ADD KEY idx_materials_org_supplier(organization_id,supplier_id),
ADD KEY idx_materials_org_manufacturer(organization_id,manufacturer_id),
ADD CONSTRAINT fk_materials_supplier FOREIGN KEY(organization_id,supplier_id) REFERENCES organization_partners(organization_id,id) ON DELETE RESTRICT ON UPDATE RESTRICT,
ADD CONSTRAINT fk_materials_manufacturer FOREIGN KEY(organization_id,manufacturer_id) REFERENCES organization_partners(organization_id,id) ON DELETE RESTRICT ON UPDATE RESTRICT;
-- 复合外键约束组织归属,供应商/制造商角色匹配由业务接口校验。
INSERT INTO schema_migrations(version,status,completed_at,details)
VALUES('2026-10-12-material-partner-roles','completed',NOW(),JSON_OBJECT('version','2026-10-12-material-partner-roles','source','upgrade'));