From 76dfc297a729a1dd1b74c8d18acfe8d43f165ac2 Mon Sep 17 00:00:00 2001 From: ivan-m-dev Date: Thu, 28 May 2026 10:17:51 +0200 Subject: [PATCH] HCK-16273: update DDL generation for external schemas and databases --- forward_engineering/configs/templates.js | 2 +- forward_engineering/ddlProvider.js | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/forward_engineering/configs/templates.js b/forward_engineering/configs/templates.js index 681cd1e..3a56d71 100644 --- a/forward_engineering/configs/templates.js +++ b/forward_engineering/configs/templates.js @@ -2,7 +2,7 @@ module.exports = { createDatabase: '', createSchema: 'CREATE SCHEMA${ifNotExist} "${name}"${authorization}${quota};\n', createExternalSchema: - 'CREATE EXTERNAL SCHEMA${ifNotExist} "${name}" FROM ${source} DATABASE "${sourceDBName}"${sourceSchemaName}${region}${uri} IAM_ROLE "${iamRole}"${secretARN}${catalogRole}${createExternalDatabase};\n', + "CREATE EXTERNAL SCHEMA${ifNotExist} \"${name}\" FROM ${source}\nDATABASE '${sourceDBName}'${sourceSchemaName}${region}${uri}\nIAM_ROLE '${iamRole}'${secretARN}${catalogRole}${createExternalDatabase};\n", createTable: 'CREATE ${temporary}TABLE' + diff --git a/forward_engineering/ddlProvider.js b/forward_engineering/ddlProvider.js index 3cac73b..6414088 100644 --- a/forward_engineering/ddlProvider.js +++ b/forward_engineering/ddlProvider.js @@ -332,13 +332,16 @@ module.exports = (baseProvider, options, app) => { iamRole: containerData.IAM_ROLE, secretARN: getARN(containerData.SECRET_ARN, containerData.fromSource), catalogRole: - containerData.CATALOG_ROLE && containerData.source === 'Data catalog' - ? ` CATALOG_ROLE ${containerData.CATALOG_ROLE}` + containerData.CATALOG_ROLE && containerData.fromSource === 'Data catalog' + ? `\nCATALOG_ROLE '${containerData.CATALOG_ROLE}'` : '', uri: getUri(containerData.URI, containerData.port, containerData.fromSource), - region: containerData.source === 'Data catalog' ? containerData.region : '', + region: + containerData.fromSource === 'Data catalog' && containerData.region + ? `\nREGION '${containerData.region}'` + : '', createExternalDatabase: containerData.createExternalDatabaseIfNotExists - ? ' CREATE EXTERNAL DATABASE IF NOT EXISTS' + ? '\nCREATE EXTERNAL DATABASE IF NOT EXISTS' : '', functions: Array.isArray(udfs) ? udfs.map(hydrateUdf(containerData.name)).filter(filterUdf) : [], procedures: Array.isArray(procedures)