"-- +migrate Up\nCREATE TABLE IF NOT EXISTS \"authd_user\" (\n\"id\" text not null primary key,\n\"email\" text,\n\"email_verified\" boolean,\n\"display_name\" text,\n\"admin\" boolean) ;\n\nCREATE TABLE IF NOT EXISTS \"client_identity\" (\n\"id\" text not null primary key,\n\"secret\" bytea,\n\"metadata\" text);\n\nCREATE TABLE IF NOT EXISTS \"connector_config\" (\n\"id\" text not null primary key,\n\"type\" text, \"config\" text) ;\n\nCREATE TABLE IF NOT EXISTS \"key\" (\n\"value\" bytea not null primary key) ;\n\nCREATE TABLE IF NOT EXISTS \"password_info\" (\n\"user_id\" text not null primary key,\n\"password\" text,\n\"password_expires\" bigint) ;\n\nCREATE TABLE IF NOT EXISTS \"session\" (\n\"id\" text not null primary key,\n\"state\" text,\n\"created_at\" bigint,\n\"expires_at\" bigint,\n\"client_id\" text,\n\"client_state\" text,\n\"redirect_url\" text, \"identity\" text,\n\"connector_id\" text,\n\"user_id\" text, \"register\" boolean) ;\n\nCREATE TABLE IF NOT EXISTS \"session_key\" (\n\"key\" text not null primary key,\n\"session_id\" text,\n\"expires_at\" bigint,\n\"stale\" boolean) ;\n\nCREATE TABLE IF NOT EXISTS \"remote_identity_mapping\" (\n\"connector_id\" text not null,\n\"user_id\" text,\n\"remote_id\" text not null,\n primary key (\"connector_id\", \"remote_id\")) ;\n",
"-- +migrate Up\nCREATE TABLE refresh_token (\n id bigint NOT NULL,\n payload_hash bytea,\n user_id text,\n client_id text\n);\n\nCREATE SEQUENCE refresh_token_id_seq\n START WITH 1\n INCREMENT BY 1\n NO MINVALUE\n NO MAXVALUE\n CACHE 1;\n\nALTER SEQUENCE refresh_token_id_seq OWNED BY refresh_token.id;\n\nALTER TABLE ONLY refresh_token ALTER COLUMN id SET DEFAULT nextval('refresh_token_id_seq'::regclass);\n\nALTER TABLE ONLY refresh_token\n ADD CONSTRAINT refresh_token_pkey PRIMARY KEY (id);\n",
"-- +migrate Up\n\nCREATE OR REPLACE FUNCTION raise_exp() RETURNS VOID AS $$\nBEGIN\n RAISE EXCEPTION 'Found duplicate emails when using case insensitive comparision, cannot perform migration.';\nEND;\n$$ LANGUAGE plpgsql;\n\nSELECT LOWER(email),\n COUNT(email),\n CASE\n WHEN COUNT(email) > 1 THEN raise_exp()\n ELSE NULL\n END\nFROM authd_user\nGROUP BY LOWER(email);\n\nUPDATE authd_user SET email = LOWER(email);\n",