From 2a5221312a2dc41c446f32d52ec7c1ae19c2975c Mon Sep 17 00:00:00 2001 From: gsmithun4 Date: Mon, 7 Apr 2025 20:47:03 +0530 Subject: [PATCH] migration fixes for CE --- ...ateAndDataSourceDeleteToGroupPermission.ts | 12 ++++++++ ...9181992983-UpdateSourceEnumOfUsersTable.ts | 4 ++- ...3384059-AddSAMLToSourceEnumOfUsersTable.ts | 2 +- .../migrations/1744038323831-AddUserType.ts | 30 +++++++++++++++++++ 4 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 server/migrations/1744038323831-AddUserType.ts diff --git a/server/migrations/1680160847536-AddDataSourceCreateAndDataSourceDeleteToGroupPermission.ts b/server/migrations/1680160847536-AddDataSourceCreateAndDataSourceDeleteToGroupPermission.ts index db21b46c7a..b77a56f4ca 100644 --- a/server/migrations/1680160847536-AddDataSourceCreateAndDataSourceDeleteToGroupPermission.ts +++ b/server/migrations/1680160847536-AddDataSourceCreateAndDataSourceDeleteToGroupPermission.ts @@ -2,6 +2,12 @@ import { MigrationInterface, QueryRunner, TableColumn } from 'typeorm'; export class AddDataSourceCreateAndDataSourceDeleteToGroupPermission1680160847536 implements MigrationInterface { public async up(queryRunner: QueryRunner): Promise { + const tableExists = await queryRunner.hasTable('group_permissions'); + + if (!tableExists) { + console.log('Table group_permissions does not exist. Migration will not be applied.'); + return; + } await queryRunner.addColumn( 'group_permissions', new TableColumn({ @@ -24,6 +30,12 @@ export class AddDataSourceCreateAndDataSourceDeleteToGroupPermission168016084753 } public async down(queryRunner: QueryRunner): Promise { + const tableExists = await queryRunner.hasTable('group_permissions'); + + if (!tableExists) { + console.log('Table group_permissions does not exist. Migration will not be applied.'); + return; + } await queryRunner.dropColumn('group_permissions', 'data_source_create'); await queryRunner.dropColumn('group_permissions', 'data_source_delete'); } diff --git a/server/migrations/1689181992983-UpdateSourceEnumOfUsersTable.ts b/server/migrations/1689181992983-UpdateSourceEnumOfUsersTable.ts index 77e5dcc569..cafa871426 100644 --- a/server/migrations/1689181992983-UpdateSourceEnumOfUsersTable.ts +++ b/server/migrations/1689181992983-UpdateSourceEnumOfUsersTable.ts @@ -17,7 +17,9 @@ export class UpdateSourceEnumOfUsersTable1689181992983 implements MigrationInter "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', 'openid', 'ldap')"); + await queryRunner.query( + "CREATE TYPE source AS ENUM ('workspace_signup', 'signup', 'invite', 'google', 'git', 'openid', 'ldap')" + ); if (checkResult[0].exists) { await queryRunner.query("ALTER TABLE organization_users ALTER COLUMN source set DEFAULT 'invite'::source"); diff --git a/server/migrations/1693813384059-AddSAMLToSourceEnumOfUsersTable.ts b/server/migrations/1693813384059-AddSAMLToSourceEnumOfUsersTable.ts index 757dd705fe..4c6d5f8e3c 100644 --- a/server/migrations/1693813384059-AddSAMLToSourceEnumOfUsersTable.ts +++ b/server/migrations/1693813384059-AddSAMLToSourceEnumOfUsersTable.ts @@ -18,7 +18,7 @@ export class AddSAMLToSourceEnumOfUsersTable1693813384059 implements MigrationIn ); await queryRunner.query('DROP TYPE IF EXISTS source'); await queryRunner.query( - "CREATE TYPE source AS ENUM ('signup', 'invite', 'google', 'git', 'openid', 'ldap', 'saml')" + "CREATE TYPE source AS ENUM ('signup', 'invite', 'google', 'git', 'openid', 'ldap', 'saml', 'workspace_signup')" ); if (checkResult[0].exists) { await queryRunner.query("ALTER TABLE organization_users ALTER COLUMN source set DEFAULT 'invite'::source"); diff --git a/server/migrations/1744038323831-AddUserType.ts b/server/migrations/1744038323831-AddUserType.ts new file mode 100644 index 0000000000..f362a4eb06 --- /dev/null +++ b/server/migrations/1744038323831-AddUserType.ts @@ -0,0 +1,30 @@ +import { MigrationInterface, QueryRunner, TableColumn } from 'typeorm'; + +export class AddUserType1744038323831 implements MigrationInterface { + public async up(queryRunner: QueryRunner): Promise { + const columnExists = await queryRunner.hasColumn('users', 'user_type'); + + if (columnExists) { + return; + } + await queryRunner.addColumns('users', [ + new TableColumn({ + name: 'user_type', + type: 'enum', + enumName: 'user_type', + enum: ['instance', 'workspace'], + default: `'workspace'`, + isNullable: false, + }), + ]); + } + + public async down(queryRunner: QueryRunner): Promise { + const columnExists = await queryRunner.hasColumn('users', 'user_type'); + + if (columnExists) { + return; + } + await queryRunner.dropColumns('users', ['user_type']); + } +}