mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
feat: run all migrations in a transaction (#10966)
Updates coder/customers#365 This PR updates our migration framework to run all migrations in a single transaction. This is the same behavior we had in v1 and ensures that failed migrations don't bring the whole deployment down. If a migration fails now, it will automatically be rolled back to the previous version, allowing the deployment to continue functioning.
This commit is contained in:
@@ -1 +1,20 @@
|
||||
ALTER TYPE login_type ADD VALUE IF NOT EXISTS 'token';
|
||||
CREATE TYPE new_logintype AS ENUM (
|
||||
'password',
|
||||
'github',
|
||||
'oidc',
|
||||
'token'
|
||||
);
|
||||
|
||||
ALTER TABLE users
|
||||
ALTER COLUMN login_type DROP DEFAULT,
|
||||
ALTER COLUMN login_type TYPE new_logintype USING (login_type::text::new_logintype),
|
||||
ALTER COLUMN login_type SET DEFAULT 'password'::new_logintype;
|
||||
|
||||
ALTER TABLE user_links
|
||||
ALTER COLUMN login_type TYPE new_logintype USING (login_type::text::new_logintype);
|
||||
|
||||
ALTER TABLE api_keys
|
||||
ALTER COLUMN login_type TYPE new_logintype USING (login_type::text::new_logintype);
|
||||
|
||||
DROP TYPE login_type;
|
||||
ALTER TYPE new_logintype RENAME TO login_type;
|
||||
|
||||
Reference in New Issue
Block a user