3.7 KiB
Schema 变更记录
用途:记录在初始 Model 创建之后新增/修改的字段,供架构师逐一更新 Migration 脚本。
格式:每条变更含目标表、变更类型、字段定义、变更原因、来源 PRD 依据。
状态流转:待迁移→已迁移(架构师完成 migration 后更新状态)
变更清单
| # | 状态 | 目标表 | 变更类型 | 字段名 | 提出日期 |
|---|---|---|---|---|---|
| 1 | 待迁移 | public.tenants |
新增字段 | tenant_code |
2026-04-30 |
| 2 | 待迁移 | public.tenants |
新增字段 | contact_phone |
2026-04-30 |
| 3 | 待迁移 | public.tenants |
字段修改 | contact_email(NOT NULL → 可 NULL) |
2026-04-30 |
变更详情
#1 — public.tenants 新增 tenant_code
状态:待迁移
提出日期:2026-04-30
目标表:public.tenants(Public Schema,django-tenants 主租户表)
字段定义:
tenant_code CHAR(12) UNIQUE NOT NULL
注释:对外暴露的 12 位纯数字识别码,如 202500010001;用户首次登录客户端时输入;由平台运营在注册租户时生成;创建后不可修改。
推荐加在:schema_name 字段之后,name 字段之前。
约束要求:
CHAR(12):固定 12 位UNIQUE:全局唯一NOT NULL:注册时必填- 禁止
UPDATE(应用层 + DB 层双重约束,与schema_name同等级别)
建议索引:
CREATE UNIQUE INDEX idx_tenants_tenant_code ON public.tenants(tenant_code);
变更原因:
登录 PRD §5.1.3 明确用户输入 12 位 Tenant Code 完成租户识别,服务端需通过该码查找对应 schema_name,原始 public.tenants 表中缺少此字段。
PRD 依据:
PRD/登录管理/用户登录管理模块PRD.md §5.1.3 — Tenant Code 格式规范:
格式:固定 12 位纯数字,如
202500010001
登录查询示例:
SELECT schema_name, name
FROM public.tenants
WHERE tenant_code = '202500010001'
AND status = 'active';
#2 — public.tenants 新增 contact_phone
状态:待迁移
提出日期:2026-04-30
目标表:public.tenants(Public Schema)
字段定义:
contact_phone CHAR(11) NOT NULL
注释:联系人手机号(11位纯数字);系统开通租户时自动以此手机号创建 Tenant Admin 登录账号;必填字段,平台运营在创建租户时录入。
推荐加在:contact_name 字段之后,contact_email 字段之前。
约束要求:
CHAR(11):固定 11 位手机号NOT NULL:开通租户时必填
变更原因:
登录 PRD v1.5 决策:Tenant Admin 账号统一以联系人手机号作为用户名,与普通员工账号规则对齐。需在 tenants 表增加手机号字段作为 Tenant Admin 账号创建的数据来源。
PRD 依据:
PRD/登录管理/用户登录管理模块PRD.md §5.3.2 Tenant Admin 账号规格表
#3 — public.tenants.contact_email 改为可 NULL
状态:待迁移
提出日期:2026-04-30
目标表:public.tenants(Public Schema)
变更 SQL:
ALTER TABLE public.tenants
ALTER COLUMN contact_email DROP NOT NULL;
变更原因:
contact_email 原为 NOT NULL。由于 Tenant Admin 账号创建数据来源改为 contact_phone(手机号,必填),邮箱降级为选填,仅用于找回密码功能。为空时 Tenant Admin 无法自助找回密码,需联系平台运营处理。
PRD 依据:
PRD/登录管理/用户登录管理模块PRD.md §5.3.2
后续如有新增字段,按同样格式追加到本文件。