From bb923c08d8cb816c8e1c18d2bc55ee0a3765a084 Mon Sep 17 00:00:00 2001 From: Pranav C Date: Thu, 6 Jan 2022 17:59:39 +0530 Subject: [PATCH] fix: create meta folder if missing(meta export), show error on failure re #924 #923 Signed-off-by: Pranav C --- packages/nc-gui/store/sqlMgr.js | 13 +++++++++++-- packages/nocodb/package-lock.json | 19 +++++++++++++++++++ packages/nocodb/package.json | 1 + .../migrator/SqlMigrator/lib/KnexMigrator.ts | 8 ++++++++ .../nocodb/src/lib/noco/meta/NcMetaMgr.ts | 7 ++++++- 5 files changed, 45 insertions(+), 3 deletions(-) diff --git a/packages/nc-gui/store/sqlMgr.js b/packages/nc-gui/store/sqlMgr.js index 53cb9d8d88..6c68b29da5 100644 --- a/packages/nc-gui/store/sqlMgr.js +++ b/packages/nc-gui/store/sqlMgr.js @@ -426,8 +426,17 @@ export const actions = { return data } catch (e) { - console.log(e) - const err = new Error(e.response.data.msg) + let msg + if (e.response.data instanceof Blob) { + try { + msg = JSON.parse(await e.response.data.text()).msg + } catch { + msg = 'Some internal error occurred' + } + } else { + msg = e.response.data.msg || 'Some internal error occurred' + } + const err = new Error(msg) err.response = e.response throw err } diff --git a/packages/nocodb/package-lock.json b/packages/nocodb/package-lock.json index 42df28a803..087b913da3 100644 --- a/packages/nocodb/package-lock.json +++ b/packages/nocodb/package-lock.json @@ -105,6 +105,7 @@ "@types/inflection": "^1.5.28", "@types/lru-cache": "^5.1.0", "@types/minio": "^7.0.7", + "@types/mkdirp": "^1.0.2", "@types/mocha": "^8.0.1", "@types/nodemailer": "^6.4.0", "@types/supertest": "^2.0.10", @@ -1836,6 +1837,15 @@ "@types/node": "*" } }, + "node_modules/@types/mkdirp": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-1.0.2.tgz", + "integrity": "sha512-o0K1tSO0Dx5X6xlU5F1D6625FawhC3dU3iqr25lluNv/+/QIVH8RLNEiVokgIZo+mz+87w/3Mkg/VvQS+J51fQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/mocha": { "version": "8.2.3", "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.3.tgz", @@ -26086,6 +26096,15 @@ "@types/node": "*" } }, + "@types/mkdirp": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-1.0.2.tgz", + "integrity": "sha512-o0K1tSO0Dx5X6xlU5F1D6625FawhC3dU3iqr25lluNv/+/QIVH8RLNEiVokgIZo+mz+87w/3Mkg/VvQS+J51fQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, "@types/mocha": { "version": "8.2.3", "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.3.tgz", diff --git a/packages/nocodb/package.json b/packages/nocodb/package.json index 905c9e1d88..4873335e90 100644 --- a/packages/nocodb/package.json +++ b/packages/nocodb/package.json @@ -186,6 +186,7 @@ "@types/inflection": "^1.5.28", "@types/lru-cache": "^5.1.0", "@types/minio": "^7.0.7", + "@types/mkdirp": "^1.0.2", "@types/mocha": "^8.0.1", "@types/nodemailer": "^6.4.0", "@types/supertest": "^2.0.10", diff --git a/packages/nocodb/src/lib/migrator/SqlMigrator/lib/KnexMigrator.ts b/packages/nocodb/src/lib/migrator/SqlMigrator/lib/KnexMigrator.ts index 2ef14a4f89..cea5e9cd9f 100644 --- a/packages/nocodb/src/lib/migrator/SqlMigrator/lib/KnexMigrator.ts +++ b/packages/nocodb/src/lib/migrator/SqlMigrator/lib/KnexMigrator.ts @@ -122,6 +122,8 @@ export default class KnexMigrator extends SqlMigrator { ); try { + // @ts-ignore + // @ts-ignore await promisify(mkdirp)( path.join( this.toolDir, @@ -142,6 +144,7 @@ export default class KnexMigrator extends SqlMigrator { ) ); + // @ts-ignore await promisify(mkdirp)( path.join( this.toolDir, @@ -163,6 +166,7 @@ export default class KnexMigrator extends SqlMigrator { ) ); + // @ts-ignore await promisify(mkdirp)( path.join( this.toolDir, @@ -183,6 +187,7 @@ export default class KnexMigrator extends SqlMigrator { ) ); + // @ts-ignore await promisify(mkdirp)( path.join( this.toolDir, @@ -202,6 +207,7 @@ export default class KnexMigrator extends SqlMigrator { ) ); + // @ts-ignore await promisify(mkdirp)( path.join( this.toolDir, @@ -211,6 +217,7 @@ export default class KnexMigrator extends SqlMigrator { ) ); + // @ts-ignore await promisify(mkdirp)( path.join( this.toolDir, @@ -346,6 +353,7 @@ export default class KnexMigrator extends SqlMigrator { //freshProject.folder = args.folder; + // @ts-ignore await promisify(mkdirp)(`${args.folder}`); this.emit(`Project folder created successfully: ${args.folder}`); diff --git a/packages/nocodb/src/lib/noco/meta/NcMetaMgr.ts b/packages/nocodb/src/lib/noco/meta/NcMetaMgr.ts index 7445977cfb..a873b11e84 100644 --- a/packages/nocodb/src/lib/noco/meta/NcMetaMgr.ts +++ b/packages/nocodb/src/lib/noco/meta/NcMetaMgr.ts @@ -1,5 +1,6 @@ import CryptoJS from 'crypto-js'; import fs from 'fs'; +import mkdirp from 'mkdirp'; import path from 'path'; import archiver from 'archiver'; @@ -700,8 +701,11 @@ export default class NcMetaMgr { args.dbAlias, 'meta' ); + + mkdirp.sync(metaFolder); + // const client = await this.projectGetSqlClient(args); - const dbAlias = await this.getDbAlias(args); + const dbAlias = this.getDbAlias(args); for (const tn of META_TABLES[this.config.projectType.toLowerCase()]) { // const metaData = await client.knex(tn).select(); const metaData = await this.xcMeta.metaList(projectId, dbAlias, tn); @@ -730,6 +734,7 @@ export default class NcMetaMgr { }); } catch (e) { console.log(e); + throw e; } } }