| 123456789101112131415161718 |
- -- Migration 016: 将 models.api_key 从存储实际 key 值改为存储 api_keys.id
- SET search_path TO crawl;
- -- 1. 添加新列 api_key_id
- ALTER TABLE models ADD COLUMN IF NOT EXISTS api_key_id BIGINT;
- -- 2. 尝试迁移现有数据(如果 api_key 值能匹配到 api_keys.key_value,则填充 api_key_id)
- UPDATE models m
- SET api_key_id = (SELECT id FROM api_keys WHERE key_value = m.api_key LIMIT 1)
- WHERE m.api_key IS NOT NULL;
- -- 3. 删除旧列 api_key
- ALTER TABLE models DROP COLUMN IF EXISTS api_key;
- -- 4. 添加外键约束(可选,如果需要严格约束)
- -- ALTER TABLE models ADD CONSTRAINT fk_models_api_key FOREIGN KEY (api_key_id) REFERENCES api_keys(id) ON DELETE SET NULL;
- COMMENT ON COLUMN models.api_key_id IS '关联的 API Key ID,NULL 表示未绑定';
|