Kit.Db/projects/pg/kit_auth_pg/auth/scripts/2026-07-09_user-seed-merge.sql

78 lines
4.5 KiB
PL/PgSQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- ============================================================================
-- Обновление демо-пользователей auth."user" на проде kit-auth2 (МЕРЖ по id).
--
-- Как применять: открыть в pgAdmin -> Query Tool на подключении к БД kit-auth2
-- (роль user_auth / user_auth2 — владелец таблицы, либо postgres) и выполнить (F5).
--
-- Зачем: init.sh отрабатывает только на пустом томе, поэтому правки seed в
-- init/schemas/auth/auth.post-deploy.psql не доезжают до уже инициализированной прод-БД.
--
-- Что делает: идемпотентный UPSERT по PK id для строк 1..7 (INSERT ... ON CONFLICT
-- (id) DO UPDATE). Строки 1..4 обновляются до нового вида, 5..7 добавляются; любые
-- строки с id вне 1..7 (реальные зарегистрированные пользователи) НЕ трогаются.
-- Можно запускать повторно — результат тот же. TRUNCATE не выполняется.
--
-- id заданы ЯВНО (1..7) для выравнивания с cabinet_user.user_id в Kit.Partner.Service.
-- Значения синхронны с init/schemas/auth/auth.post-deploy.psql (там id неявный serial).
-- ============================================================================
BEGIN;
INSERT INTO auth."user"(
id, outer_user_id, login, password, password_temp,
first_name, middle_name, last_name, email, phone, sex,
date_created, is_blocked, is_deleted, date_deleted)
VALUES
-- 1: администратор портала ОТ5
(1, 'user_ot5', 'ot5', '', 'ot5_pass',
'Администратор', 'портала', 'ОТ5', 'admin@ot5.app', '11-11-11', true,
'2025-01-01', false, false, null),
-- 2: администратор партнёра ОТ5
(2, 'p_ot5', 'p_ot5', '', 'p_ot5_pass',
'Администратор', 'партнёра', 'Kit ОТ5', 'kit_admin@ot5.app', '11-11-11', true,
'2025-01-01', false, false, null),
-- 3: администратор партнёра ОТ6
(3, 'p_ot6', 'p_ot6', '', 'p_ot6_pass',
'Администратор', 'партнёра', 'Kit ОТ6', 'kit_admin@ot6.app', '11-11-11', true,
'2025-01-01', false, false, null),
-- 4: админ контрагента ОТ5-1
(4, 'c_ot5_1', 'c_ot5_1', '', 'c_ot5_1_pass',
'Админ', 'контрагента', 'ОТ5 Контрагент 1', 'c1@ot5.app', '44-44-44', true,
'2025-01-01', false, false, null),
-- 5: админ контрагента ОТ5-2
(5, 'c_ot5_2', 'c_ot5_2', '', 'c_ot5_2_pass',
'Админ', 'контрагента', 'ОТ5 Контрагент 2', 'c2@ot5.app', '55-55-55', false,
'2025-01-01', false, false, null),
-- 6: админ контрагента ОТ6-1
(6, 'c_ot6_1', 'c_ot6_1', '', 'c_ot6_1_pass',
'Админ', 'контрагента', 'ОТ6 Контрагент 1', 'c1@ot6.app', '66-66-66', true,
'2025-01-01', false, false, null),
-- 7: админ контрагента ОТ6-2
(7, 'c_ot6_2', 'c_ot6_2', '', 'c_ot6_2_pass',
'Админ', 'контрагента', 'ОТ6 Контрагент 2', 'c2@ot6.app', '77-77-77', false,
'2025-01-01', false, false, null)
ON CONFLICT (id) DO UPDATE SET
outer_user_id = EXCLUDED.outer_user_id,
login = EXCLUDED.login,
password = EXCLUDED.password,
password_temp = EXCLUDED.password_temp,
first_name = EXCLUDED.first_name,
middle_name = EXCLUDED.middle_name,
last_name = EXCLUDED.last_name,
email = EXCLUDED.email,
phone = EXCLUDED.phone,
sex = EXCLUDED.sex,
date_created = EXCLUDED.date_created,
is_blocked = EXCLUDED.is_blocked,
is_deleted = EXCLUDED.is_deleted,
date_deleted = EXCLUDED.date_deleted;
-- Досбросить serial, чтобы будущий INSERT без id (напр. /auth/register) не наткнулся
-- на занятые id 1..7.
SELECT setval(pg_get_serial_sequence('auth."user"', 'id'),
(SELECT COALESCE(MAX(id), 1) FROM auth."user"));
COMMIT;
-- Проверка результата (выполнить отдельно после COMMIT при необходимости):
-- SELECT id, outer_user_id, login, email, is_blocked FROM auth."user" ORDER BY id;