78 lines
4.5 KiB
PL/PgSQL
78 lines
4.5 KiB
PL/PgSQL
-- ============================================================================
|
||
-- Обновление демо-пользователей 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; |