initial commit

This commit is contained in:
2025-11-29 00:28:21 +05:00
parent 46229acc82
commit ec3b03a935
76 changed files with 13492 additions and 0 deletions

View File

@@ -0,0 +1,58 @@
-- +goose Up
-- +goose StatementBegin
-- =========================================
-- Разделение full_name на first_name и last_name
-- =========================================
-- Добавляем новые колонки
ALTER TABLE users
ADD COLUMN first_name VARCHAR(100),
ADD COLUMN last_name VARCHAR(100);
-- Копируем данные из full_name в новые поля
-- Разделяем по первому пробелу
UPDATE users
SET
first_name = CASE
WHEN position(' ' in full_name) > 0
THEN split_part(full_name, ' ', 1)
ELSE full_name
END,
last_name = CASE
WHEN position(' ' in full_name) > 0
THEN substring(full_name from position(' ' in full_name) + 1)
ELSE ''
END
WHERE full_name IS NOT NULL;
-- Делаем новые поля обязательными
ALTER TABLE users
ALTER COLUMN first_name SET NOT NULL,
ALTER COLUMN last_name SET NOT NULL;
-- Удаляем старую колонку
ALTER TABLE users DROP COLUMN full_name;
-- +goose StatementEnd
-- +goose Down
-- +goose StatementBegin
-- Восстанавливаем full_name
ALTER TABLE users ADD COLUMN full_name VARCHAR(255);
-- Объединяем имя и фамилию обратно
UPDATE users
SET full_name = first_name || ' ' || last_name
WHERE first_name IS NOT NULL AND last_name IS NOT NULL;
-- Делаем full_name обязательным
ALTER TABLE users ALTER COLUMN full_name SET NOT NULL;
-- Удаляем новые колонки
ALTER TABLE users
DROP COLUMN first_name,
DROP COLUMN last_name;
-- +goose StatementEnd