48 lines
1.4 KiB
SQL
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
|