diff --git a/packages/api/src/shell/tableWriter.js b/packages/api/src/shell/tableWriter.js index 89ca5a8f8..4ca34b478 100644 --- a/packages/api/src/shell/tableWriter.js +++ b/packages/api/src/shell/tableWriter.js @@ -3,7 +3,7 @@ const driverConnect = require('../utility/driverConnect'); const engines = require('@dbgate/engines'); async function tableWriter({ connection, schemaName, pureName, ...options }) { - console.log(`write table ${schemaName}.${pureName}`); + console.log(`Write table ${schemaName}.${pureName}`); const driver = engines(connection); const pool = await driverConnect(driver, connection); diff --git a/packages/engines/mssql/createBulkInsertStream.js b/packages/engines/mssql/createBulkInsertStream.js index 159c32287..850543ae3 100644 --- a/packages/engines/mssql/createBulkInsertStream.js +++ b/packages/engines/mssql/createBulkInsertStream.js @@ -1,3 +1,4 @@ +const { prepareTableForImport } = require('@dbgate/tools'); const _ = require('lodash'); /** @@ -34,7 +35,7 @@ function createBulkInsertStream(driver, mssql, stream, pool, name, options) { if (options.createIfNotExists && (!structure || options.dropIfExists)) { console.log(`Creating table ${fullName}`); const dmp = driver.createDumper(); - dmp.createTable({ ...writable.structure, ...name }); + dmp.createTable(prepareTableForImport({ ...writable.structure, ...name })); console.log(dmp.s); await driver.query(pool, dmp.s); structure = await driver.analyseSingleTable(pool, name); diff --git a/packages/tools/src/index.ts b/packages/tools/src/index.ts index 215b6fea5..3e77feffa 100644 --- a/packages/tools/src/index.ts +++ b/packages/tools/src/index.ts @@ -1,2 +1,3 @@ export * from './commonTypeParser'; export * from './nameTools'; +export * from './tableTransforms'; diff --git a/packages/tools/src/tableTransforms.ts b/packages/tools/src/tableTransforms.ts new file mode 100644 index 000000000..b5d31c147 --- /dev/null +++ b/packages/tools/src/tableTransforms.ts @@ -0,0 +1,9 @@ +import { TableInfo } from '@dbgate/types'; +import _ from 'lodash'; + +export function prepareTableForImport(table: TableInfo): TableInfo { + const res = _.cloneDeep(table); + res.foreignKeys = []; + if (res.primaryKey) res.primaryKey.constraintName = null; + return res; +}