-- Исправление триггера create_initial_profile и колонки looking_for -- Дата: 2025-11-06 -- 1. Удаляем старую функцию триггера DROP FUNCTION IF EXISTS create_initial_profile() CASCADE; -- 2. Создаём исправленную функцию с полем looking_for CREATE OR REPLACE FUNCTION create_initial_profile() RETURNS TRIGGER AS $$ BEGIN INSERT INTO profiles (user_id, name, age, gender, looking_for, interested_in) VALUES (NEW.id, COALESCE(NEW.first_name, 'User'), 18, 'other', 'both', 'both'); RETURN NEW; END; $$ LANGUAGE plpgsql; -- 3. Пересоздаём триггер DROP TRIGGER IF EXISTS create_profile_on_user_insert ON users; DROP TRIGGER IF EXISTS create_profile_trigger ON users; CREATE TRIGGER create_profile_on_user_insert AFTER INSERT ON users FOR EACH ROW EXECUTE FUNCTION create_initial_profile(); -- 4. Делаем looking_for необязательным с дефолтным значением ALTER TABLE profiles ALTER COLUMN looking_for DROP NOT NULL; ALTER TABLE profiles ALTER COLUMN looking_for SET DEFAULT 'both'; -- 5. Добавляем interested_in как синоним для looking_for ALTER TABLE profiles ADD COLUMN IF NOT EXISTS interested_in VARCHAR(20) DEFAULT 'both' CHECK (interested_in IN ('male', 'female', 'both')); -- 6. Обновляем существующие записи UPDATE profiles SET looking_for = 'both' WHERE looking_for IS NULL; UPDATE profiles SET interested_in = COALESCE(looking_for, 'both') WHERE interested_in IS NULL; -- 7. Создаём индекс для поиска по interested_in CREATE INDEX IF NOT EXISTS idx_profiles_interested_in ON profiles(interested_in); COMMENT ON COLUMN profiles.looking_for IS 'Предпочитаемый пол для знакомства (устаревшее, используйте interested_in)'; COMMENT ON COLUMN profiles.interested_in IS 'Предпочитаемый пол для знакомства: male, female, both';