恢复了以下迁移文件到原始状态: - 004_add_redeem_code_notes.sql - 005_schema_parity.sql - 006_fix_invalid_subscription_expires_at.sql - 007_add_user_allowed_groups.sql - 008_seed_default_group.sql - 009_fix_usage_logs_cache_columns.sql - 010_add_usage_logs_aggregated_indexes.sql - 011_remove_duplicate_unique_indexes.sql - 012_add_user_subscription_soft_delete.sql - 013_log_orphan_allowed_groups.sql - 014_drop_legacy_allowed_groups.sql - 015_fix_settings_unique_constraint.sql - 016_soft_delete_partial_unique_indexes.sql - 018_user_attributes.sql - 019_migrate_wechat_to_attributes.sql - 024_add_gemini_tier_id.sql 数据库迁移文件不应在应用后修改,即使只是注释。
20 lines
573 B
SQL
20 lines
573 B
SQL
-- 015_fix_settings_unique_constraint.sql
|
|
-- 修复 settings 表 key 字段缺失的唯一约束
|
|
-- 此约束是 ON CONFLICT ("key") DO UPDATE 语句所必需的
|
|
|
|
-- 检查并添加唯一约束(如果不存在)
|
|
DO $$
|
|
BEGIN
|
|
-- 检查是否已存在唯一约束
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM pg_constraint
|
|
WHERE conrelid = 'settings'::regclass
|
|
AND contype = 'u'
|
|
AND conname = 'settings_key_key'
|
|
) THEN
|
|
-- 添加唯一约束
|
|
ALTER TABLE settings ADD CONSTRAINT settings_key_key UNIQUE (key);
|
|
END IF;
|
|
END
|
|
$$;
|