diff --git a/packages/api/src/shell/sqlDataWriter.js b/packages/api/src/shell/sqlDataWriter.js index 56d8d567f..710f6dfbf 100644 --- a/packages/api/src/shell/sqlDataWriter.js +++ b/packages/api/src/shell/sqlDataWriter.js @@ -5,10 +5,11 @@ const { driverBase } = require('dbgate-tools'); const requireEngineDriver = require('../utility/requireEngineDriver'); class SqlizeStream extends stream.Transform { - constructor({ fileName }) { + constructor({ fileName, dataName }) { super({ objectMode: true }); this.wasHeader = false; this.tableName = path.parse(fileName).name; + this.dataName = dataName; this.driver = driverBase; } _transform(chunk, encoding, done) { @@ -28,7 +29,7 @@ class SqlizeStream extends stream.Transform { const dmp = this.driver.createDumper(); dmp.put( '^insert ^into %f (%,i) ^values (%,v);\n', - { pureName: this.tableName }, + { pureName: this.dataName || this.tableName }, Object.keys(chunk), Object.values(chunk) ); @@ -38,9 +39,9 @@ class SqlizeStream extends stream.Transform { } } -async function sqlDataWriter({ fileName, driver, encoding = 'utf-8' }) { +async function sqlDataWriter({ fileName, dataName, driver, encoding = 'utf-8' }) { console.log(`Writing file ${fileName}`); - const stringify = new SqlizeStream({ fileName }); + const stringify = new SqlizeStream({ fileName, dataName }); const fileStream = fs.createWriteStream(fileName, encoding); stringify.pipe(fileStream); stringify['finisher'] = fileStream; diff --git a/packages/web/src/plugins/fileformats.ts b/packages/web/src/plugins/fileformats.ts index 070cf5b5f..f6a1c7b35 100644 --- a/packages/web/src/plugins/fileformats.ts +++ b/packages/web/src/plugins/fileformats.ts @@ -48,10 +48,11 @@ const jsonQuickExport = { const sqlQuickExport = { label: 'SQL', extension: 'sql', - createWriter: fileName => ({ + createWriter: (fileName, dataName) => ({ functionName: 'sqlDataWriter', props: { fileName, + dataName, }, }), };