ToolJet/server/migrations/1714999026964-AddWorkspace_signupToSource.ts
2024-05-14 12:18:58 +05:30

25 lines
1.2 KiB
TypeScript

import { MigrationInterface, QueryRunner } from 'typeorm';
export class AddWorkspaceSignupToSource1714999026964 implements MigrationInterface {
public async up(queryRunner: QueryRunner): Promise<void> {
// Check if the 'workspace_signup' enum exists
const checkEnumQuery =
"SELECT EXISTS (SELECT * FROM unnest(enum_range(NULL::source)) AS t(name) WHERE t.name::text = 'workspace_signup');";
const checkEnumResult = await queryRunner.query(checkEnumQuery);
const enumExists = checkEnumResult[0].exists;
if (!enumExists) {
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("CREATE TYPE source AS ENUM ('signup', 'invite', 'google', 'git', 'workspace_signup')");
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> {}
}