ToolJet/server/migrations/1667075911289-createDatasourceOptions.ts

76 lines
2 KiB
TypeScript
Raw Normal View History

Feature - Multi Environment support (#4833) * initial commit * multi env changes * multi-env changes * entity fixes * data query changes * fix * trying to avoid conflict with EE * moved version creation to app creation function * fixing some issues * execution of data query * revert options changes * changed migration * fixed some migration issues: testing migration * multi env support * app import export fix * fixes * migration fixes * removed plugins from data query * fixing some migration issues * fixes * remove console log * fix * front end api changes * backward compatibility for app import * Fixed a bug * correcting some mistakes * Added constraints and fixed some issues * changes * fix for data source listing * fixing version operation issues * remove kind from data query * removed kind from data query * fixes * fixes * fix for version creation * migration fixes * Fixed preview and run query issues * Fix: new version and event query id issue * fixed rest api oauth issue - next test refresh token * import export changes * fixes for app import * import fix * added await for for loops * fix * fix for migration * Fixed backend oauth-envId issue * import export changes * migration fixes * fix * fix * fix for app import from 0.9.0 * test case fixes * test case fixes * making app name mandatory for import * adding type for options * fix: imported apps query linking issues * review changes * lint issue fixes * added on delete cascade Co-authored-by: Muhsin Shah <muhsinshah21@gmail.com>
2022-12-09 14:53:42 +00:00
import { MigrationInterface, QueryRunner, Table, TableForeignKey, TableUnique } from 'typeorm';
export class createDatasourceOptions1667075911289 implements MigrationInterface {
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.createTable(
new Table({
name: 'data_source_options',
columns: [
{
name: 'id',
type: 'uuid',
isGenerated: true,
default: 'gen_random_uuid()',
isPrimary: true,
},
{
name: 'data_source_id',
type: 'uuid',
isNullable: false,
},
{
name: 'environment_id',
type: 'uuid',
isNullable: false,
},
{
name: 'options',
type: 'json',
isNullable: true,
},
{
name: 'created_at',
type: 'timestamp',
isNullable: true,
default: 'now()',
},
{
name: 'updated_at',
type: 'timestamp',
isNullable: true,
default: 'now()',
},
],
}),
true
);
await queryRunner.createForeignKeys('data_source_options', [
new TableForeignKey({
columnNames: ['data_source_id'],
referencedColumnNames: ['id'],
referencedTableName: 'data_sources',
onDelete: 'CASCADE',
}),
new TableForeignKey({
columnNames: ['environment_id'],
referencedColumnNames: ['id'],
referencedTableName: 'app_environments',
onDelete: 'CASCADE',
}),
]);
await queryRunner.createUniqueConstraint(
'data_source_options',
new TableUnique({
name: 'data_source_env_data_source_options_unique',
columnNames: ['data_source_id', 'environment_id'],
})
);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.dropTable('data_source_options');
}
}