Files
mkd/backend/migrations/add_user_profile_fields.sql

31 lines
1.8 KiB
MySQL
Raw Normal View History

2026-02-04 00:17:04 +05:00
-- Миграция: расширение профиля пользователя (план User Profile System)
-- Добавляет поля в portal_users и создает таблицу user_preferences
-- 1. Добавление полей в portal_users
ALTER TABLE portal_users ADD COLUMN IF NOT EXISTS phone VARCHAR(20);
ALTER TABLE portal_users ADD COLUMN IF NOT EXISTS given_name TEXT;
ALTER TABLE portal_users ADD COLUMN IF NOT EXISTS family_name TEXT;
ALTER TABLE portal_users ADD COLUMN IF NOT EXISTS birth_date DATE;
ALTER TABLE portal_users ADD COLUMN IF NOT EXISTS language VARCHAR(10) DEFAULT 'ru';
ALTER TABLE portal_users ADD COLUMN IF NOT EXISTS theme VARCHAR(20) DEFAULT 'light';
ALTER TABLE portal_users ADD COLUMN IF NOT EXISTS notification_email BOOLEAN DEFAULT true;
ALTER TABLE portal_users ADD COLUMN IF NOT EXISTS notification_push BOOLEAN DEFAULT true;
ALTER TABLE portal_users ADD COLUMN IF NOT EXISTS email_verified BOOLEAN DEFAULT false;
ALTER TABLE portal_users ADD COLUMN IF NOT EXISTS last_login TIMESTAMPTZ;
ALTER TABLE portal_users ADD COLUMN IF NOT EXISTS password_changed_at TIMESTAMPTZ;
-- 2. Создание таблицы user_preferences для расширяемых настроек
CREATE TABLE IF NOT EXISTS user_preferences (
id BIGSERIAL PRIMARY KEY,
user_id BIGINT NOT NULL REFERENCES portal_users(id) ON DELETE CASCADE,
key TEXT NOT NULL,
value JSONB,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
UNIQUE(user_id, key)
);
CREATE INDEX IF NOT EXISTS idx_user_preferences_user_id ON user_preferences(user_id);
COMMENT ON TABLE user_preferences IS 'Расширяемые настройки и предпочтения пользователя';