Files
nekonest-cloud/drizzle/9001_provisioning_slug_backfill.sql

25 lines
908 B
SQL

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);