INSERT OR IGNORE INTO `audit_events` (`id`, `actor_id`, `action`, `target_type`, `target_id`, `reason`, `before_json`, `after_json`, `correlation_id`, `created_at`) SELECT 'audit_slug_backfill_' || `id`, 'system:migration', 'tenant.slug_backfilled', 'tenant', `id`, '旧版短租户 slug 不满足隔离域名契约,按不可变 tenant ID 扩展', json_object('slug', `slug`), json_object('slug', 'n-' || substr(`id`, -32)), 'corr_slug_backfill_' || `id`, CURRENT_TIMESTAMP FROM `tenant_instances` WHERE `id` LIKE 'tenant_%' AND length(`id`) = 39 AND (`slug` NOT LIKE 'n-%' OR length(`slug`) <> 34);--> statement-breakpoint UPDATE `tenant_instances` SET `slug` = 'n-' || substr(`id`, -32), `updated_at` = CURRENT_TIMESTAMP WHERE `id` LIKE 'tenant_%' AND length(`id`) = 39 AND (`slug` NOT LIKE 'n-%' OR length(`slug`) <> 34);