From 37414b664d810ef1ff39de4460c997e47ca72857 Mon Sep 17 00:00:00 2001 From: Peter Richards <89087326+PeterMRichards@users.noreply.github.com> Date: Fri, 28 Jun 2024 13:58:16 +0100 Subject: [PATCH 1/2] Update add-insert-statements.js --- .../add-insert-statements.js | 34 ++++++++++++------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/lib/generate-script-statements/add-insert-statements.js b/lib/generate-script-statements/add-insert-statements.js index 70c3e69..4f029c3 100644 --- a/lib/generate-script-statements/add-insert-statements.js +++ b/lib/generate-script-statements/add-insert-statements.js @@ -1,16 +1,24 @@ -'use strict' +"use strict"; -const _ = require('lodash') +const _ = require("lodash"); -module.exports = function addInsertStatements (scriptStatements, fileInfo, options) { - if (Object.prototype.hasOwnProperty.call(fileInfo, 'inserts')) { - _.forOwn( - fileInfo.inserts, - function (info, filePath) { - scriptStatements.push( - `COPY ${_.snakeCase(options.schemaName)}.${_.snakeCase(info.tableName)}(${info.columnNames.all.join(',')}) FROM '${filePath}' CSV HEADER ${options.sqlQuote};` - ) - } - ) +module.exports = function addInsertStatements(scriptStatements, fileInfo, options) { + if (!Object.prototype.hasOwnProperty.call(fileInfo, "inserts")) { + return; } -} + + const topDownTableOrder = _.isArray(options.topDownTableOrder) ? options.topDownTableOrder : []; + + const inserts = _.map(fileInfo.inserts, (info, filePath) => ({ info, filePath })); + + const sortedInserts = _.sortBy(inserts, (insert) => { + const idx = topDownTableOrder.indexOf(insert.info.tableName); + return idx >= 0 ? idx : inserts.length; + }); + + sortedInserts.forEach(({ info, filePath }) => + scriptStatements.push( + `COPY ${_.snakeCase(options.schemaName)}.${_.snakeCase(info.tableName)}(${info.columnNames.all.join(",")}) FROM '${filePath}' CSV HEADER ${options.sqlQuote};`, + ), + ); +}; From b4019d2460b8fb97291df8538751eb9066efae5c Mon Sep 17 00:00:00 2001 From: Peter Richards <89087326+PeterMRichards@users.noreply.github.com> Date: Fri, 28 Jun 2024 14:02:53 +0100 Subject: [PATCH 2/2] Update add-insert-statements.js --- lib/generate-script-statements/add-insert-statements.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/generate-script-statements/add-insert-statements.js b/lib/generate-script-statements/add-insert-statements.js index 4f029c3..69c3c93 100644 --- a/lib/generate-script-statements/add-insert-statements.js +++ b/lib/generate-script-statements/add-insert-statements.js @@ -1,9 +1,9 @@ -"use strict"; +'use strict'; -const _ = require("lodash"); +const _ = require('lodash'); module.exports = function addInsertStatements(scriptStatements, fileInfo, options) { - if (!Object.prototype.hasOwnProperty.call(fileInfo, "inserts")) { + if (!Object.prototype.hasOwnProperty.call(fileInfo, 'inserts')) { return; }