From 65fef00977538c5e4cea817897dcb15956e6fcf1 Mon Sep 17 00:00:00 2001 From: Pranav C Date: Tue, 20 Jun 2023 20:56:04 +0530 Subject: [PATCH 1/2] fix: while deleting foreign key provide constraint name if available Signed-off-by: Pranav C --- packages/nocodb/src/version-upgrader/ncXcdbLTARUpgrader.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/nocodb/src/version-upgrader/ncXcdbLTARUpgrader.ts b/packages/nocodb/src/version-upgrader/ncXcdbLTARUpgrader.ts index 19d2f94a94..53d8dff706 100644 --- a/packages/nocodb/src/version-upgrader/ncXcdbLTARUpgrader.ts +++ b/packages/nocodb/src/version-upgrader/ncXcdbLTARUpgrader.ts @@ -31,6 +31,7 @@ async function upgradeModelRelations({ rtn: string; cn: string; rcn: string; + cstn?: string; }[]; }) { // Iterate over each column and upgrade LTAR @@ -74,6 +75,7 @@ async function upgradeModelRelations({ childColumn: relation.cn, parentTable: relation.rtn, childTable: relation.tn, + foreignKeyName: relation.cstn, }); } From 238adf314a31b267dbfb326b0cb905e7dc33da9a Mon Sep 17 00:00:00 2001 From: Pranav C Date: Tue, 20 Jun 2023 22:53:20 +0530 Subject: [PATCH 2/2] fix: improve the upgrader by getting all the relations together Signed-off-by: Pranav C --- .../src/version-upgrader/ncXcdbLTARUpgrader.ts | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/packages/nocodb/src/version-upgrader/ncXcdbLTARUpgrader.ts b/packages/nocodb/src/version-upgrader/ncXcdbLTARUpgrader.ts index 53d8dff706..962d8dab64 100644 --- a/packages/nocodb/src/version-upgrader/ncXcdbLTARUpgrader.ts +++ b/packages/nocodb/src/version-upgrader/ncXcdbLTARUpgrader.ts @@ -121,17 +121,14 @@ async function upgradeModelRelations({ async function upgradeBaseRelations({ ncMeta, base, + relations, }: { ncMeta: MetaService; base: any; + relations: any; }) { - // const sqlMgr = ProjectMgrv2.getSqlMgr({ id: base.project_id }, ncMeta); - const sqlClient = await NcConnectionMgrv2.getSqlClient(base, ncMeta.knex); - // get all relations - const relations = (await sqlClient.relationListAll())?.data?.list; - // get models for the base const models = await ncMeta.metaList2(null, base.id, MetaTable.MODELS); @@ -156,11 +153,22 @@ export default async function ({ ncMeta }: NcUpgraderCtx) { orderBy: {}, }); + if (!bases.length) return; + + const sqlClient = await NcConnectionMgrv2.getSqlClient( + new Base(bases[0]), + ncMeta.knex, + ); + + // get all relations + const relations = (await sqlClient.relationListAll())?.data?.list; + // iterate and upgrade each base for (const base of bases) { await upgradeBaseRelations({ ncMeta, base: new Base(base), + relations, }); } }