From 574a4eaf1d268de45cb3ca445c854683b2e5aeaa Mon Sep 17 00:00:00 2001 From: Nakul Nagargade Date: Sun, 13 Jul 2025 16:47:41 +0530 Subject: [PATCH] separate migrations --- ...ntainerVisibilityHeaderFooterProperties.ts | 70 ----------------- ...ateFormVisibilityHeaderFooterProperties.ts | 77 +++++++++++++++++++ ...45-MigrateContainerVisibilityProperties.ts | 63 +++++++++++++++ 3 files changed, 140 insertions(+), 70 deletions(-) delete mode 100644 server/data-migrations/1752403387878-MigrateFormContainerVisibilityHeaderFooterProperties.ts create mode 100644 server/data-migrations/1752403387878-MigrateFormVisibilityHeaderFooterProperties.ts create mode 100644 server/data-migrations/1752404494845-MigrateContainerVisibilityProperties.ts diff --git a/server/data-migrations/1752403387878-MigrateFormContainerVisibilityHeaderFooterProperties.ts b/server/data-migrations/1752403387878-MigrateFormContainerVisibilityHeaderFooterProperties.ts deleted file mode 100644 index 060ffa456d..0000000000 --- a/server/data-migrations/1752403387878-MigrateFormContainerVisibilityHeaderFooterProperties.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { Component } from '@entities/component.entity'; -import { processDataInBatches } from '@helpers/migration.helper'; -import { EntityManager, MigrationInterface, QueryRunner } from 'typeorm'; - -export class MoveVisibilityDisabledStatesDividerLink1743053824028 implements MigrationInterface { - - public async up(queryRunner: QueryRunner): Promise { - const componentTypes = ['Container', 'Form']; - const batchSize = 100; - const entityManager = queryRunner.manager; - - for (const componentType of componentTypes) { - await processDataInBatches( - entityManager, - async (entityManager: EntityManager) => { - return await entityManager.find(Component, { - where: { type: componentType }, - order: { createdAt: 'ASC' }, - }); - }, - async (entityManager: EntityManager, components: Component[]) => { - await this.processUpdates(entityManager, components); - }, - batchSize - ); - } - } - - private async processUpdates(entityManager, components) { - for (const component of components) { - const properties = component.properties; - const styles = component.styles; - const general = component.general; - const generalStyles = component.generalStyles; - - if (properties.showHeader == undefined || null) { - properties.showHeader = false; - } - - if (component.type === 'Form' && properties.showFooter == undefined || null) { - properties.showFooter = false; - } - - if (styles.visibility) { - properties.visibility = styles.visibility; - delete styles.visibility; - } - - if (component.type === 'Form' && general?.tooltip) { - properties.tooltip = general?.tooltip; - delete general?.tooltip; - } - - if (generalStyles?.boxShadow) { - styles.boxShadow = generalStyles?.boxShadow; - delete generalStyles?.boxShadow; - } - - await entityManager.update(Component, component.id, { - properties, - styles, - general, - generalStyles, - }); - } - } - public async down(queryRunner: QueryRunner): Promise { - } - -} diff --git a/server/data-migrations/1752403387878-MigrateFormVisibilityHeaderFooterProperties.ts b/server/data-migrations/1752403387878-MigrateFormVisibilityHeaderFooterProperties.ts new file mode 100644 index 0000000000..44023a4137 --- /dev/null +++ b/server/data-migrations/1752403387878-MigrateFormVisibilityHeaderFooterProperties.ts @@ -0,0 +1,77 @@ +import { Component } from '@entities/component.entity'; +import { processDataInBatches } from '@helpers/migration.helper'; +import { EntityManager, MigrationInterface, QueryRunner } from 'typeorm'; +export class MigrateFormVisibilityHeaderFooterProperties1752403387878 implements MigrationInterface { + + public async up(queryRunner: QueryRunner): Promise { + const componentTypes = ['Form']; + const batchSize = 100; + const entityManager = queryRunner.manager; + + for (const componentType of componentTypes) { + await processDataInBatches( + entityManager, + async (entityManager: EntityManager) => { + return await entityManager.find(Component, { + where: { type: componentType }, + order: { createdAt: 'ASC' }, + }); + }, + async (entityManager: EntityManager, components: Component[]) => { + await this.processUpdates(entityManager, components); + }, + batchSize + ); + } + } + + private async processUpdates(entityManager, components) { + for (const component of components) { + const properties = component.properties; + const styles = component.styles; + const general = component.general; + const generalStyles = component.generalStyles; + + if (styles?.visibility) { + properties.visibility = styles.visibility; + delete styles.visibility; + } + + if (styles?.disabledState) { + properties.disabledState = styles.disabledState + delete styles.disabledState + } + + if (general?.tooltip) { + properties.tooltip = general?.tooltip; + delete general?.tooltip; + } + + if (generalStyles?.boxShadow) { + styles.boxShadow = generalStyles?.boxShadow; + delete generalStyles?.boxShadow; + } + + // Update showHeader property to false for old instances + if (!properties.showHeader) { + properties.showHeader = { value: '{{false}}' }; + } + + // Update showHeader property to false for old instances + if (!properties.showFooter) { + properties.showHeader = { value: '{{false}}' }; + } + + await entityManager.update(Component, component.id, { + properties, + styles, + general, + generalStyles, + }); + } + } + + public async down(queryRunner: QueryRunner): Promise { + } + +} diff --git a/server/data-migrations/1752404494845-MigrateContainerVisibilityProperties.ts b/server/data-migrations/1752404494845-MigrateContainerVisibilityProperties.ts new file mode 100644 index 0000000000..1712e565cc --- /dev/null +++ b/server/data-migrations/1752404494845-MigrateContainerVisibilityProperties.ts @@ -0,0 +1,63 @@ +import { Component } from '@entities/component.entity'; +import { processDataInBatches } from '@helpers/migration.helper'; +import { EntityManager, MigrationInterface, QueryRunner } from 'typeorm'; + +export class MigrateContainerVisibilityProperties1752404494845 implements MigrationInterface { + + public async up(queryRunner: QueryRunner): Promise { + const componentTypes = ['Container']; + const batchSize = 100; + const entityManager = queryRunner.manager; + + for (const componentType of componentTypes) { + await processDataInBatches( + entityManager, + async (entityManager: EntityManager) => { + return await entityManager.find(Component, { + where: { type: componentType }, + order: { createdAt: 'ASC' }, + }); + }, + async (entityManager: EntityManager, components: Component[]) => { + await this.processUpdates(entityManager, components); + }, + batchSize + ); + } + } + + private async processUpdates(entityManager, components) { + for (const component of components) { + const properties = component.properties; + const styles = component.styles; + const general = component.general; + const generalStyles = component.generalStyles; + + if (styles?.visibility) { + properties.visibility = styles.visibility; + delete styles.visibility; + } + + if (styles?.disabledState) { + properties.disabledState = styles.disabledState + delete styles.disabledState + } + + if (generalStyles?.boxShadow) { + styles.boxShadow = generalStyles?.boxShadow; + delete generalStyles?.boxShadow; + } + + await entityManager.update(Component, component.id, { + properties, + styles, + general, + generalStyles, + }); + } + } + + public async down(queryRunner: QueryRunner): Promise { + } + +}