Files
silo-server/migrations/sql/20260610155245_normalize_abs_sessions_token_hash.sql
T

48 lines
1.4 KiB
SQL

-- +goose Up
-- +goose StatementBegin
DO $$
BEGIN
IF EXISTS (
SELECT 1
FROM information_schema.columns
WHERE table_schema = 'public'
AND table_name = 'abs_sessions'
AND column_name = 'token'
) AND NOT EXISTS (
SELECT 1
FROM information_schema.columns
WHERE table_schema = 'public'
AND table_name = 'abs_sessions'
AND column_name = 'token_hash'
) THEN
ALTER TABLE public.abs_sessions RENAME COLUMN token TO token_hash;
ELSIF EXISTS (
SELECT 1
FROM information_schema.columns
WHERE table_schema = 'public'
AND table_name = 'abs_sessions'
AND column_name = 'token'
) THEN
UPDATE public.abs_sessions
SET token_hash = token
WHERE token_hash IS NULL OR token_hash = '';
ALTER TABLE public.abs_sessions DROP COLUMN token;
END IF;
END $$;
ALTER TABLE public.abs_sessions
ALTER COLUMN token_hash SET NOT NULL;
DROP INDEX IF EXISTS public.idx_abs_sessions_token;
CREATE UNIQUE INDEX IF NOT EXISTS idx_abs_sessions_token_hash
ON public.abs_sessions (token_hash);
-- +goose StatementEnd
-- +goose Down
-- +goose StatementBegin
DROP INDEX IF EXISTS public.idx_abs_sessions_token_hash;
CREATE UNIQUE INDEX IF NOT EXISTS idx_abs_sessions_token
ON public.abs_sessions (token_hash);
-- +goose StatementEnd