From 8e3d4227412385a623fc40066b670dfad8483fc7 Mon Sep 17 00:00:00 2001 From: Edward Fitz Abucay Date: Wed, 27 Nov 2024 22:35:47 +0800 Subject: [PATCH] fix(migrations): update types that are not set on the schema This changeset updates the migrations schema that's causing trouble on new supabase/auth installations whether its using docker or not. The types are not set on the schema which causes the migrations to fail. And it adds residual types on public schema. Signed-off-by: Edward Fitz Abucay --- .../20221003041349_add_mfa_schema.up.sql | 19 +++++++++++-------- ...0_add_aal_and_factor_id_to_sessions.up.sql | 2 +- ...20230322519590_add_flow_state_table.up.sql | 4 ++-- ...427152123_add_one_time_tokens_table.up.sql | 4 ++-- 4 files changed, 16 insertions(+), 13 deletions(-) diff --git a/migrations/20221003041349_add_mfa_schema.up.sql b/migrations/20221003041349_add_mfa_schema.up.sql index a44654aed..740c8849d 100644 --- a/migrations/20221003041349_add_mfa_schema.up.sql +++ b/migrations/20221003041349_add_mfa_schema.up.sql @@ -1,19 +1,22 @@ -- see: https://stackoverflow.com/questions/7624919/check-if-a-user-defined-type-already-exists-in-postgresql/48382296#48382296 -do $$ begin - create type factor_type as enum('totp', 'webauthn'); - create type factor_status as enum('unverified', 'verified'); - create type aal_level as enum('aal1', 'aal2', 'aal3'); +do $$ +begin + create type {{ index .Options "Namespace" }}.factor_type as enum('totp', 'webauthn'); + create type {{ index .Options "Namespace" }}.factor_status as enum('unverified', 'verified'); + create type {{ index .Options "Namespace" }}.aal_level as enum('aal1', 'aal2', 'aal3'); exception - when duplicate_object then null; -end $$; + when duplicate_object then raise notice '%, skipping', sqlerrm using errcode = sqlstate; + when others then null; +end +$$; -- auth.mfa_factors definition create table if not exists {{ index .Options "Namespace" }}.mfa_factors( id uuid not null, user_id uuid not null, friendly_name text null, - factor_type factor_type not null, - status factor_status not null, + factor_type {{ index .Options "Namespace" }}.factor_type not null, + status {{ index .Options "Namespace" }}.factor_status not null, created_at timestamptz not null, updated_at timestamptz not null, secret text null, diff --git a/migrations/20221003041400_add_aal_and_factor_id_to_sessions.up.sql b/migrations/20221003041400_add_aal_and_factor_id_to_sessions.up.sql index cc8a2096d..426a42f59 100644 --- a/migrations/20221003041400_add_aal_and_factor_id_to_sessions.up.sql +++ b/migrations/20221003041400_add_aal_and_factor_id_to_sessions.up.sql @@ -1,3 +1,3 @@ -- add factor_id to sessions alter table {{ index .Options "Namespace" }}.sessions add column if not exists factor_id uuid null; - alter table {{ index .Options "Namespace" }}.sessions add column if not exists aal aal_level null; + alter table {{ index .Options "Namespace" }}.sessions add column if not exists aal {{ index .Options "Namespace" }}.aal_level null; diff --git a/migrations/20230322519590_add_flow_state_table.up.sql b/migrations/20230322519590_add_flow_state_table.up.sql index a8842e5b0..c54455f90 100644 --- a/migrations/20230322519590_add_flow_state_table.up.sql +++ b/migrations/20230322519590_add_flow_state_table.up.sql @@ -1,6 +1,6 @@ -- see: https://stackoverflow.com/questions/7624919/check-if-a-user-defined-type-already-exists-in-postgresql/48382296#48382296 do $$ begin - create type code_challenge_method as enum('s256', 'plain'); + create type {{ index .Options "Namespace" }}.code_challenge_method as enum('s256', 'plain'); exception when duplicate_object then null; end $$; @@ -8,7 +8,7 @@ create table if not exists {{ index .Options "Namespace" }}.flow_state( id uuid primary key, user_id uuid null, auth_code text not null, - code_challenge_method code_challenge_method not null, + code_challenge_method {{ index .Options "Namespace" }}.code_challenge_method not null, code_challenge text not null, provider_type text not null, provider_access_token text null, diff --git a/migrations/20240427152123_add_one_time_tokens_table.up.sql b/migrations/20240427152123_add_one_time_tokens_table.up.sql index 86e6ad427..58e17784e 100644 --- a/migrations/20240427152123_add_one_time_tokens_table.up.sql +++ b/migrations/20240427152123_add_one_time_tokens_table.up.sql @@ -1,5 +1,5 @@ do $$ begin - create type one_time_token_type as enum ( + create type {{ index .Options "Namespace" }}.one_time_token_type as enum ( 'confirmation_token', 'reauthentication_token', 'recovery_token', @@ -16,7 +16,7 @@ do $$ begin create table if not exists {{ index .Options "Namespace" }}.one_time_tokens ( id uuid primary key, user_id uuid not null references {{ index .Options "Namespace" }}.users on delete cascade, - token_type one_time_token_type not null, + token_type {{ index .Options "Namespace" }}.one_time_token_type not null, token_hash text not null, relates_to text not null, created_at timestamp without time zone not null default now(),