31 lines
1.8 KiB
MySQL
31 lines
1.8 KiB
MySQL
|
|
-- Миграция: расширение профиля пользователя (план 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 'Расширяемые настройки и предпочтения пользователя';
|