From 3340f893fe8088eebe22764797602f0ada6f4d9c Mon Sep 17 00:00:00 2001 From: chin Date: Tue, 1 Aug 2023 13:16:02 +0800 Subject: [PATCH] build: add generate erd tool --- models/sql/generate-erd.js | 14 ++++++++++++++ package-lock.json | 38 ++++++++++++++++++++++++++++++++++++++ package.json | 1 + 3 files changed, 53 insertions(+) create mode 100644 models/sql/generate-erd.js diff --git a/models/sql/generate-erd.js b/models/sql/generate-erd.js new file mode 100644 index 00000000..f747929e --- /dev/null +++ b/models/sql/generate-erd.js @@ -0,0 +1,14 @@ +require("module-alias/register"); +const fsP = require("fs/promises"); +const sequelize = require("./instance"); +const sequelizeErd = require("sequelize-erd"); + + +require("./init").then(async()=> { + const svg = await sequelizeErd({ + source: sequelize + }); // sequelizeErd() returns a Promise + await fsP.writeFile("./erd.svg", svg); +}); + + diff --git a/package-lock.json b/package-lock.json index def24372..bc7a1725 100644 --- a/package-lock.json +++ b/package-lock.json @@ -61,6 +61,7 @@ "eslint-config-prettier": "^8.5.0", "mocha": "^10.2.0", "mongodb-memory-server": "^8.12.2", + "sequelize-erd": "^1.3.1", "standard-version": "^9.5.0", "swagger-jsdoc": "^6.2.8" } @@ -7513,6 +7514,25 @@ } } }, + "node_modules/sequelize-erd": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/sequelize-erd/-/sequelize-erd-1.3.1.tgz", + "integrity": "sha512-w5/gNkj0WTp80KMvMxrrTp3HyIn1B8F5XmTXP6PXQNoWi1HKazXe9IvlbmGVP2yxx/YTtX+QWatcwkDk8HLK9Q==", + "dev": true, + "dependencies": { + "commander": "^2.9.0", + "lodash": "^4.17.15" + }, + "bin": { + "sequelize-erd": "bin/generate" + } + }, + "node_modules/sequelize-erd/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, "node_modules/sequelize-pool": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/sequelize-pool/-/sequelize-pool-7.1.0.tgz", @@ -14727,6 +14747,24 @@ } } }, + "sequelize-erd": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/sequelize-erd/-/sequelize-erd-1.3.1.tgz", + "integrity": "sha512-w5/gNkj0WTp80KMvMxrrTp3HyIn1B8F5XmTXP6PXQNoWi1HKazXe9IvlbmGVP2yxx/YTtX+QWatcwkDk8HLK9Q==", + "dev": true, + "requires": { + "commander": "^2.9.0", + "lodash": "^4.17.15" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, "sequelize-pool": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/sequelize-pool/-/sequelize-pool-7.1.0.tgz", diff --git a/package.json b/package.json index acfe9916..c899dc01 100644 --- a/package.json +++ b/package.json @@ -114,6 +114,7 @@ "eslint-config-prettier": "^8.5.0", "mocha": "^10.2.0", "mongodb-memory-server": "^8.12.2", + "sequelize-erd": "^1.3.1", "standard-version": "^9.5.0", "swagger-jsdoc": "^6.2.8" }