diff --git a/gvsds/apps/gerp/migrations/0028_tenant_uuid_backfill.py b/gvsds/apps/gerp/migrations/0028_tenant_uuid_backfill.py index 9d16ec7c..de4cfb17 100644 --- a/gvsds/apps/gerp/migrations/0028_tenant_uuid_backfill.py +++ b/gvsds/apps/gerp/migrations/0028_tenant_uuid_backfill.py @@ -16,15 +16,19 @@ _BACKFILL_TABLES = ( def backfill_tenant_uuid(apps, schema_editor): - """从关联 Company 的 TenantUUID 回填各表 TenantUUID""" + """从关联 Company 的 TenantUUID 回填各表 TenantUUID + + 注意:历史模型字段名沿用迁移状态中的小写形式(tenant_uuid/company_uuid), + 与 0001 等既有迁移保持一致(当前 models.py 的 PascalCase 属性名不在历史模型中)。 + """ Company = apps.get_model('gerp', 'Company') company_tenant = dict( - Company.objects.exclude(TenantUUID__isnull=True).values_list('CompanyUUID', 'TenantUUID') + Company.objects.exclude(tenant_uuid__isnull=True).values_list('company_uuid', 'tenant_uuid') ) for name in _BACKFILL_TABLES: model = apps.get_model('gerp', name) - for obj in model.objects.exclude(CompanyUUID__isnull=True).only('pk', 'CompanyUUID').iterator(): - tenant = company_tenant.get(obj.CompanyUUID_id) + for obj in model.objects.exclude(company_uuid__isnull=True).only('pk', 'company_uuid').iterator(): + tenant = company_tenant.get(obj.company_uuid_id) if tenant: model.objects.filter(pk=obj.pk).update(TenantUUID=tenant) diff --git a/gvsds/apps/gerp/models.py b/gvsds/apps/gerp/models.py index af3b4093..76a568f7 100644 --- a/gvsds/apps/gerp/models.py +++ b/gvsds/apps/gerp/models.py @@ -255,6 +255,7 @@ class Menu(QModel): """菜单表——系统导航与功能入口""" MenuUUID = UUIDField(primary_key=True, verbose_name='菜单UUID') + TenantUUID = UUIDField(null=True, blank=True, verbose_name='租户UUID') CompanyUUID = UUIDField(null=True, blank=True, db_column='CompanyUUID', verbose_name='公司UUID') ParentMenuUUID = UUIDField(null=True, blank=True, db_column='ParentMenuUUID', verbose_name='上级菜单UUID') MenuName = models.CharField(max_length=128, verbose_name='菜单名称')