db-modeling-markdown 2.0.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1 -1
- package/CONTRIBUTING.md +9 -5
- package/README.md +30 -3
- package/dist/services/dbmOptions.d.ts +6 -2
- package/dist/services/dbmOptions.js +6 -2
- package/dist/services/dbmOptions.js.map +1 -1
- package/dist/services/dbmService.d.ts +2 -2
- package/dist/services/dbmService.js +9 -2
- package/dist/services/dbmService.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
package/CONTRIBUTING.md
CHANGED
|
@@ -11,14 +11,18 @@ yarn prepare
|
|
|
11
11
|
|
|
12
12
|
## Publish steps
|
|
13
13
|
|
|
14
|
-
- change the package version
|
|
15
|
-
- change CHANGELOG
|
|
16
|
-
-
|
|
14
|
+
- change the package version `package.json`
|
|
15
|
+
- change `CHANGELOG.md` for new features or fixes.
|
|
16
|
+
- update sample scripts `examples\generator.ts`
|
|
17
|
+
- update `README.md`
|
|
18
|
+
- version
|
|
19
|
+
- sample typescrit
|
|
20
|
+
- features and so on
|
|
17
21
|
- build: run `yarn build`
|
|
18
22
|
- check the package
|
|
23
|
+
- edit `~/npmrc`, comment out the mirrow repositories
|
|
24
|
+
- if need, `npm adduser` to add your npm user
|
|
19
25
|
- publish: `npm publish --access public`
|
|
20
|
-
edit `~/npmrc`, comment out the mirrow repositories
|
|
21
|
-
if need, `npm adduser` to add
|
|
22
26
|
- document: update gitee pages
|
|
23
27
|
|
|
24
28
|
## Test
|
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@ Now, you may define your database tables in markdown files, and this utility wil
|
|
|
6
6
|
|
|
7
7
|
## Release Notes
|
|
8
8
|
|
|
9
|
-
### 2.0.
|
|
9
|
+
### 2.0.1
|
|
10
10
|
|
|
11
11
|
[Change Log](./CHANGELOG.md)
|
|
12
12
|
|
|
@@ -79,9 +79,24 @@ import { DatabaseTypes, DbmOptions, DbmService } from '../src'
|
|
|
79
79
|
|
|
80
80
|
const options: DbmOptions = new DbmOptions()
|
|
81
81
|
options.database = DatabaseTypes.mariadb
|
|
82
|
-
|
|
82
|
+
|
|
83
|
+
// Generate database modeling markdown files (.db.md) from a database
|
|
84
|
+
options.sourceFolder = path.join(__dirname, `../../temp/tables/v1`)
|
|
85
|
+
await DbmService.fromDatabase(
|
|
86
|
+
{
|
|
87
|
+
databaseType: options.database,
|
|
88
|
+
host: '127.0.0.1',
|
|
89
|
+
port: 3306,
|
|
90
|
+
user: 'root',
|
|
91
|
+
password: 'password',
|
|
92
|
+
database: 'my-db',
|
|
93
|
+
},
|
|
94
|
+
options.sourceFolder,
|
|
95
|
+
true,
|
|
96
|
+
)
|
|
83
97
|
|
|
84
98
|
// Read table definition markdow files(.db.md), and produce a sql file with create-table-if-not-exists scripts
|
|
99
|
+
options.sourceFolder = path.join(__dirname, '../tests/data/mariadb/tables')
|
|
85
100
|
options.targetPath = path.join(__dirname, '../temp/createTableIf.sql')
|
|
86
101
|
DbmService.toCreateTableIfNotExistsSql(options)
|
|
87
102
|
|
|
@@ -97,6 +112,11 @@ DbmService.toDropTableSql(options)
|
|
|
97
112
|
options.targetPath = path.join(__dirname, '../temp/dropThenCreateTable.sql')
|
|
98
113
|
DbmService.toDropThenCreateTableSql(options)
|
|
99
114
|
|
|
115
|
+
// Read table definition markdow files(.db.md), and produce a sql file with upgrade scripts
|
|
116
|
+
options.previousVersionFolder = path.join(__dirname, `../tests/data/mariadb/tables/v1`)
|
|
117
|
+
options.targetPath = path.join(__dirname, '../temp/upgrade.sql')
|
|
118
|
+
DbmService.toUpgradeSql(options)
|
|
119
|
+
|
|
100
120
|
// Read table definition markdow files(.db.md), and produce a json file
|
|
101
121
|
options.targetPath = path.join(__dirname, '../temp/model.json')
|
|
102
122
|
DbmService.toJson(options)
|
|
@@ -104,10 +124,14 @@ DbmService.toJson(options)
|
|
|
104
124
|
// Read table definition markdow files(.db.md), and produce a model object
|
|
105
125
|
options.targetPath = ''
|
|
106
126
|
const model = DbmService.toModel(options)
|
|
127
|
+
// eslint-disable-next-line no-console
|
|
107
128
|
console.log(JSON.stringify(model, null, 2))
|
|
108
129
|
|
|
109
130
|
// Generate database modeling markdown files (.db.md) from a model
|
|
110
131
|
DbmService.toMarkdown(model, path.join(__dirname, '../temp/tables'), true)
|
|
132
|
+
|
|
133
|
+
// Generate index.md from a model
|
|
134
|
+
DbmService.genIndexFile(model, options.sourceFolder)
|
|
111
135
|
```
|
|
112
136
|
|
|
113
137
|
## Features
|
|
@@ -126,9 +150,12 @@ DbmService.toMarkdown(model, path.join(__dirname, '../temp/tables'), true)
|
|
|
126
150
|
- Support generate SQL scripts of create tables if not exists.
|
|
127
151
|
- Support generate SQL scripts of drop then create tables.
|
|
128
152
|
- Support generate SQL scripts of drop tables.
|
|
153
|
+
- Support generate SQL scripts of upgrade a database (mariadb/mysql only).
|
|
154
|
+
- Support generate database definition markdown files from a database (mariadb/mysql only).
|
|
129
155
|
- Support generate a json file of the database model.
|
|
130
156
|
- Support generate an model object of the database model.
|
|
131
|
-
- Support generate database definition markdown files from a database model.
|
|
157
|
+
- Support generate database definition markdown files from a database model (json).
|
|
158
|
+
- Support generate `index.md` for a database model.
|
|
132
159
|
|
|
133
160
|
## Contributing
|
|
134
161
|
|
|
@@ -13,12 +13,16 @@ export declare class DbmOptions {
|
|
|
13
13
|
*/
|
|
14
14
|
mdFileExtension: string;
|
|
15
15
|
/**
|
|
16
|
-
* The
|
|
16
|
+
* The markdown file directory of the database model.
|
|
17
17
|
*/
|
|
18
18
|
sourceFolder: string;
|
|
19
19
|
/**
|
|
20
|
-
* The path of the output file
|
|
20
|
+
* The path of the output file.
|
|
21
21
|
*/
|
|
22
22
|
targetPath: string;
|
|
23
|
+
/**
|
|
24
|
+
* The markdown file directory of the previous database version.
|
|
25
|
+
*/
|
|
26
|
+
previousVersionFolder: string;
|
|
23
27
|
}
|
|
24
28
|
export declare const DefaultOptions: DbmOptions;
|
|
@@ -17,13 +17,17 @@ class DbmOptions {
|
|
|
17
17
|
*/
|
|
18
18
|
this.mdFileExtension = '.db.md';
|
|
19
19
|
/**
|
|
20
|
-
* The
|
|
20
|
+
* The markdown file directory of the database model.
|
|
21
21
|
*/
|
|
22
22
|
this.sourceFolder = '';
|
|
23
23
|
/**
|
|
24
|
-
* The path of the output file
|
|
24
|
+
* The path of the output file.
|
|
25
25
|
*/
|
|
26
26
|
this.targetPath = '';
|
|
27
|
+
/**
|
|
28
|
+
* The markdown file directory of the previous database version.
|
|
29
|
+
*/
|
|
30
|
+
this.previousVersionFolder = '';
|
|
27
31
|
}
|
|
28
32
|
}
|
|
29
33
|
exports.DbmOptions = DbmOptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dbmOptions.js","sourceRoot":"","sources":["../../src/services/dbmOptions.ts"],"names":[],"mappings":";;;AAAA,2DAAuD;AAEvD;;GAEG;AACH,MAAa,UAAU;IAAvB;QACC;;WAEG;QACH,aAAQ,GAAkB,6BAAa,CAAC,KAAK,CAAA;QAE7C;;;WAGG;QACH,oBAAe,GAAW,QAAQ,CAAA;QAElC;;WAEG;QACH,iBAAY,GAAW,EAAE,CAAA;QAEzB;;WAEG;QACH,eAAU,GAAW,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"dbmOptions.js","sourceRoot":"","sources":["../../src/services/dbmOptions.ts"],"names":[],"mappings":";;;AAAA,2DAAuD;AAEvD;;GAEG;AACH,MAAa,UAAU;IAAvB;QACC;;WAEG;QACH,aAAQ,GAAkB,6BAAa,CAAC,KAAK,CAAA;QAE7C;;;WAGG;QACH,oBAAe,GAAW,QAAQ,CAAA;QAElC;;WAEG;QACH,iBAAY,GAAW,EAAE,CAAA;QAEzB;;WAEG;QACH,eAAU,GAAW,EAAE,CAAA;QAEvB;;WAEG;QACH,0BAAqB,GAAW,EAAE,CAAA;IACnC,CAAC;CAAA;AA1BD,gCA0BC;AAEY,QAAA,cAAc,GAAG,IAAI,UAAU,EAAE,CAAA"}
|
|
@@ -40,9 +40,9 @@ export declare class DbmService {
|
|
|
40
40
|
* - new primary keys
|
|
41
41
|
* - new indexes
|
|
42
42
|
* - new foreign keys
|
|
43
|
-
* @param options the options, required: `database`, `sourceFolder`, `targetPath`.
|
|
43
|
+
* @param options the options, required: `database`, `sourceFolder`, `targetPath`, `previousVersionFolder`.
|
|
44
44
|
*/
|
|
45
|
-
static toUpgradeSql(
|
|
45
|
+
static toUpgradeSql(options: DbmOptions): string;
|
|
46
46
|
/**
|
|
47
47
|
* Generate a JSON file.
|
|
48
48
|
* @param options the options, required: `database`, `sourceFolder`, `targetPath`.
|
|
@@ -8,6 +8,7 @@ const markdownReader_1 = require("../lib/markdown-object/markdownReader");
|
|
|
8
8
|
const markdownWriter_1 = require("../lib/markdown-object/markdownWriter");
|
|
9
9
|
const fileHelper_1 = require("../lib/utils/fileHelper");
|
|
10
10
|
const databaseTypes_1 = require("../models/databaseTypes");
|
|
11
|
+
const dbmOptions_1 = require("./dbmOptions");
|
|
11
12
|
/**
|
|
12
13
|
* The database modeling markdown service.
|
|
13
14
|
*/
|
|
@@ -128,9 +129,13 @@ class DbmService {
|
|
|
128
129
|
* - new primary keys
|
|
129
130
|
* - new indexes
|
|
130
131
|
* - new foreign keys
|
|
131
|
-
* @param options the options, required: `database`, `sourceFolder`, `targetPath`.
|
|
132
|
+
* @param options the options, required: `database`, `sourceFolder`, `targetPath`, `previousVersionFolder`.
|
|
132
133
|
*/
|
|
133
|
-
static toUpgradeSql(
|
|
134
|
+
static toUpgradeSql(options) {
|
|
135
|
+
const fromOptions = new dbmOptions_1.DbmOptions();
|
|
136
|
+
fromOptions.database = options.database;
|
|
137
|
+
fromOptions.mdFileExtension = options.mdFileExtension;
|
|
138
|
+
fromOptions.sourceFolder = options.previousVersionFolder;
|
|
134
139
|
const fromModel = this.toModel(fromOptions);
|
|
135
140
|
const model = this.toModel(options);
|
|
136
141
|
const provider = providerFactory_1.ProviderFactory.getProvider(options.database);
|
|
@@ -234,6 +239,8 @@ class DbmService {
|
|
|
234
239
|
const provider = providerFactory_1.ProviderFactory.getImportProvider(databaseTypes_1.DatabaseTypes.mariadb);
|
|
235
240
|
const model = await provider.getModel(dbOptions);
|
|
236
241
|
this.toMarkdown(model, markdownFolder, force, fileExtension);
|
|
242
|
+
// generate an index.md for the imported model
|
|
243
|
+
this.genIndexFile(model, markdownFolder);
|
|
237
244
|
}
|
|
238
245
|
}
|
|
239
246
|
exports.DbmService = DbmService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dbmService.js","sourceRoot":"","sources":["../../src/services/dbmService.ts"],"names":[],"mappings":";;;AAAA,yBAAwB;AACxB,6BAA4B;AAG5B,sEAAkE;AAClE,0EAAsE;AACtE,0EAAsE;AACtE,wDAAoD;AACpD,2DAAuD;
|
|
1
|
+
{"version":3,"file":"dbmService.js","sourceRoot":"","sources":["../../src/services/dbmService.ts"],"names":[],"mappings":"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"}
|