1e2099412a goods.class 分类名唯一约束改为同级唯一(unique(name, parent_id))
- 旧约束 name_uniq unique(name) 为全局唯一,不允许不同上级下出现同名子分类
- 业务需求:各大类(成品/半成品/零配件等)下可各自拥有同名形态子类,如平板哈夫等
- init() 安全删除旧 name_uniq 约束(ALTER TABLE DROP CONSTRAINT IF EXISTS)
- 新增 SQL 约束 name_parent_uniq unique(name, parent_id)
- 新增 Python @api.constrains 拦截顶级同名(因 PostgreSQL NULL != NULL,SQL约束不覆盖同父为NULL的情况)
- 同步更新测试:TestGoodsClass 自建测试数据,新增同级重名报错/跨级同名成功两个用例