ToolJet/server/migrations/1693813384059-AddSAMLToSourceEnumOfUsersTable.ts

37 lines
1.7 KiB
TypeScript
Raw Normal View History

2025-02-25 06:52:50 +00:00
import { MigrationInterface, QueryRunner } from 'typeorm';
export class AddSAMLToSourceEnumOfUsersTable1693813384059 implements MigrationInterface {
public async up(queryRunner: QueryRunner): Promise<void> {
2025-02-25 10:28:16 +00:00
const checkResult = await queryRunner.query(
`SELECT EXISTS (
SELECT FROM information_schema.columns
WHERE table_name = 'organization_users' AND column_name = 'source'
)`
);
if (checkResult[0].exists) {
await queryRunner.query(
"ALTER TABLE organization_users ALTER COLUMN source TYPE VARCHAR(255), ALTER COLUMN source SET NOT NULL, ALTER COLUMN source set DEFAULT 'invite'"
);
}
2025-02-25 06:52:50 +00:00
await queryRunner.query(
"ALTER TABLE users ALTER COLUMN source TYPE VARCHAR(255), ALTER COLUMN source SET NOT NULL, ALTER COLUMN source set DEFAULT 'invite'"
);
await queryRunner.query('DROP TYPE IF EXISTS source');
await queryRunner.query(
2025-04-07 15:17:03 +00:00
"CREATE TYPE source AS ENUM ('signup', 'invite', 'google', 'git', 'openid', 'ldap', 'saml', 'workspace_signup')"
2025-02-25 06:52:50 +00:00
);
2025-02-25 10:28:16 +00:00
if (checkResult[0].exists) {
await queryRunner.query("ALTER TABLE organization_users ALTER COLUMN source set DEFAULT 'invite'::source");
await queryRunner.query(
'ALTER TABLE organization_users ALTER COLUMN source TYPE source USING (source::source), ALTER COLUMN source set not null'
);
}
2025-02-25 06:52:50 +00:00
await queryRunner.query("ALTER TABLE users ALTER COLUMN source set DEFAULT 'invite'::source");
await queryRunner.query(
'ALTER TABLE users ALTER COLUMN source TYPE source USING (source::source), ALTER COLUMN source set not null'
);
}
public async down(queryRunner: QueryRunner): Promise<void> {}
}