mirror of
https://github.com/ToolJet/ToolJet
synced 2026-04-21 21:47:17 +00:00
38 lines
1.4 KiB
TypeScript
38 lines
1.4 KiB
TypeScript
|
|
import { MigrationInterface, QueryRunner } from 'typeorm';
|
||
|
|
|
||
|
|
export class BackfillAppVersionToDataQueries1675368628727 implements MigrationInterface {
|
||
|
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||
|
|
const entityManager = queryRunner.manager;
|
||
|
|
let progress = 0;
|
||
|
|
|
||
|
|
const appVersions = await entityManager.query(
|
||
|
|
'select distinct(data_sources.app_version_id) from data_queries inner join data_sources on data_queries.data_source_id = data_sources.id'
|
||
|
|
);
|
||
|
|
|
||
|
|
const queryToAppVersionMap = await entityManager.query(
|
||
|
|
'select data_queries.id, data_sources.app_version_id from data_queries inner join data_sources on data_queries.data_source_id = data_sources.id'
|
||
|
|
);
|
||
|
|
|
||
|
|
console.log(`App versions found : ${appVersions?.length || 0}`);
|
||
|
|
|
||
|
|
if (queryToAppVersionMap?.length) {
|
||
|
|
for (const { app_version_id: appVersion } of appVersions) {
|
||
|
|
progress++;
|
||
|
|
console.log(
|
||
|
|
`BackfillAppVersionToDataQueries1675368628727 Progress ${Math.round((progress / appVersions.length) * 100)} %`
|
||
|
|
);
|
||
|
|
|
||
|
|
const queries = queryToAppVersionMap?.filter((query) => query.app_version_id === appVersion);
|
||
|
|
if (queries?.length) {
|
||
|
|
await entityManager.query(
|
||
|
|
`update data_queries set app_version_id = $1 where id IN(${queries.map((dq) => `'${dq.id}'`)?.join()})`,
|
||
|
|
[appVersion]
|
||
|
|
);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
public async down(queryRunner: QueryRunner): Promise<void> {}
|
||
|
|
}
|