db-modeling-markdown 1.0.5 → 2.0.0
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 +24 -3
- package/CONTRIBUTING.md +78 -0
- package/README.md +63 -46
- package/dist/dialects/core/dbImportProvider.d.ts +5 -0
- package/dist/dialects/core/dbImportProvider.js +7 -0
- package/dist/dialects/core/dbImportProvider.js.map +1 -0
- package/dist/dialects/core/dbProvider.d.ts +19 -6
- package/dist/dialects/core/dbProvider.js +40 -6
- package/dist/dialects/core/dbProvider.js.map +1 -1
- package/dist/dialects/core/dbUtils.d.ts +35 -0
- package/dist/dialects/core/dbUtils.js +159 -0
- package/dist/dialects/core/dbUtils.js.map +1 -0
- package/dist/dialects/core/providerFactory.d.ts +3 -1
- package/dist/dialects/core/providerFactory.js +28 -3
- package/dist/dialects/core/providerFactory.js.map +1 -1
- package/dist/dialects/db2/db2Provider.d.ts +2 -1
- package/dist/dialects/db2/db2Provider.js +75 -46
- package/dist/dialects/db2/db2Provider.js.map +1 -1
- package/dist/dialects/mariadb/mariaDbImportProvider.d.ts +19 -0
- package/dist/dialects/mariadb/mariaDbImportProvider.js +254 -0
- package/dist/dialects/mariadb/mariaDbImportProvider.js.map +1 -0
- package/dist/dialects/mariadb/mariaDbProvider.d.ts +11 -11
- package/dist/dialects/mariadb/mariaDbProvider.js +128 -161
- package/dist/dialects/mariadb/mariaDbProvider.js.map +1 -1
- package/dist/dialects/mariadb/mariaDbUtil.d.ts +6 -0
- package/dist/dialects/mariadb/mariaDbUtil.js +23 -0
- package/dist/dialects/mariadb/mariaDbUtil.js.map +1 -0
- package/dist/dialects/mssql/msSqlProvider.d.ts +2 -1
- package/dist/dialects/mssql/msSqlProvider.js +128 -73
- package/dist/dialects/mssql/msSqlProvider.js.map +1 -1
- package/dist/dialects/mysql/mySqlImportProvider.d.ts +3 -0
- package/dist/dialects/mysql/mySqlImportProvider.js +8 -0
- package/dist/dialects/mysql/mySqlImportProvider.js.map +1 -0
- package/dist/dialects/mysql/mySqlProvider.d.ts +2 -20
- package/dist/dialects/mysql/mySqlProvider.js +2 -182
- package/dist/dialects/mysql/mySqlProvider.js.map +1 -1
- package/dist/dialects/oracle/oracleProvider.d.ts +5 -1
- package/dist/dialects/oracle/oracleProvider.js +111 -70
- package/dist/dialects/oracle/oracleProvider.js.map +1 -1
- package/dist/dialects/postgresql/postgreSqlProvider.d.ts +2 -1
- package/dist/dialects/postgresql/postgreSqlProvider.js +34 -31
- package/dist/dialects/postgresql/postgreSqlProvider.js.map +1 -1
- package/dist/dialects/sqlite/sqliteSqlProvider.d.ts +2 -1
- package/dist/dialects/sqlite/sqliteSqlProvider.js +38 -28
- package/dist/dialects/sqlite/sqliteSqlProvider.js.map +1 -1
- package/dist/index.d.ts +9 -4
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/lib/code-flow/codeFlow.js.map +1 -1
- package/dist/lib/markdown-object/markdownModel.d.ts +0 -4
- package/dist/lib/markdown-object/markdownModel.js +0 -4
- package/dist/lib/markdown-object/markdownModel.js.map +1 -1
- package/dist/lib/markdown-object/markdownReader.d.ts +19 -0
- package/dist/lib/markdown-object/markdownReader.js +85 -28
- package/dist/lib/markdown-object/markdownReader.js.map +1 -1
- package/dist/lib/markdown-object/markdownWriter.d.ts +25 -1
- package/dist/lib/markdown-object/markdownWriter.js +117 -52
- package/dist/lib/markdown-object/markdownWriter.js.map +1 -1
- package/dist/lib/markdown-object/readerContext.js +3 -1
- package/dist/lib/markdown-object/readerContext.js.map +1 -1
- package/dist/lib/utils/fileHelper.d.ts +4 -0
- package/dist/lib/utils/fileHelper.js +20 -1
- package/dist/lib/utils/fileHelper.js.map +1 -1
- package/dist/lib/utils/logger.js.map +1 -1
- package/dist/lib/utils/markdownParser.js +3 -6
- package/dist/lib/utils/markdownParser.js.map +1 -1
- package/dist/lib/utils/sqlHelper.js.map +1 -1
- package/dist/lib/utils/textFileReader.js +2 -2
- package/dist/lib/utils/textFileReader.js.map +1 -1
- package/dist/lib/utils/textHelper.d.ts +18 -0
- package/dist/lib/utils/textHelper.js +62 -0
- package/dist/lib/utils/textHelper.js.map +1 -1
- package/dist/{services → models}/databaseTypes.d.ts +0 -0
- package/dist/{services → models}/databaseTypes.js +0 -0
- package/dist/models/databaseTypes.js.map +1 -0
- package/dist/models/dbColumn.d.ts +43 -0
- package/dist/models/dbColumn.js +3 -0
- package/dist/models/dbColumn.js.map +1 -0
- package/dist/models/dbDiffModel.d.ts +43 -0
- package/dist/models/dbDiffModel.js +3 -0
- package/dist/models/dbDiffModel.js.map +1 -0
- package/dist/models/dbForeignKey.d.ts +33 -0
- package/dist/models/dbForeignKey.js +3 -0
- package/dist/models/dbForeignKey.js.map +1 -0
- package/dist/models/dbIndex.d.ts +28 -0
- package/dist/models/dbIndex.js +3 -0
- package/dist/models/dbIndex.js.map +1 -0
- package/dist/models/dbIndexType.d.ts +8 -0
- package/dist/models/dbIndexType.js +13 -0
- package/dist/models/dbIndexType.js.map +1 -0
- package/dist/models/dbModel.d.ts +10 -0
- package/dist/{services → models}/dbModel.js +0 -0
- package/dist/{services → models}/dbModel.js.map +1 -1
- package/dist/models/dbPrimaryKey.d.ts +16 -0
- package/dist/models/dbPrimaryKey.js +3 -0
- package/dist/models/dbPrimaryKey.js.map +1 -0
- package/dist/models/dbTable.d.ts +49 -0
- package/dist/models/dbTable.js +3 -0
- package/dist/models/dbTable.js.map +1 -0
- package/dist/models/dbTableMarkdown.d.ts +34 -0
- package/dist/models/dbTableMarkdown.js +3 -0
- package/dist/models/dbTableMarkdown.js.map +1 -0
- package/dist/services/dbOptions.d.ts +35 -0
- package/dist/services/dbOptions.js +18 -0
- package/dist/services/dbOptions.js.map +1 -0
- package/dist/services/dbmOptions.d.ts +1 -1
- package/dist/services/dbmOptions.js +1 -1
- package/dist/services/dbmOptions.js.map +1 -1
- package/dist/services/dbmService.d.ts +36 -1
- package/dist/services/dbmService.js +80 -13
- package/dist/services/dbmService.js.map +1 -1
- package/package.json +74 -81
- package/.eslintcache +0 -1
- package/.prettierrc +0 -8
- package/dist/services/databaseTypes.js.map +0 -1
- package/dist/services/dbModel.d.ts +0 -135
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/* eslint-disable @typescript-eslint/semi */
|
|
3
|
+
/* eslint-disable class-methods-use-this */
|
|
4
|
+
/* eslint-disable prefer-template */
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.MsSqlProvider = void 0;
|
|
4
7
|
const sqlHelper_1 = require("../../lib/utils/sqlHelper");
|
|
@@ -39,21 +42,36 @@ class MsSqlProvider extends dbProvider_1.DbProvider {
|
|
|
39
42
|
}
|
|
40
43
|
getSqlCreateTableIfNotExistsSingle(table) {
|
|
41
44
|
const result = this.getSqlCreateTableSingle(table, false);
|
|
42
|
-
const sSQL = 'IF NOT EXISTS ('
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
45
|
+
const sSQL = 'IF NOT EXISTS (' +
|
|
46
|
+
dbProvider_1.line +
|
|
47
|
+
' SELECT *' +
|
|
48
|
+
dbProvider_1.line +
|
|
49
|
+
' FROM INFORMATION_SCHEMA.TABLES' +
|
|
50
|
+
dbProvider_1.line +
|
|
51
|
+
" WHERE TABLE_TYPE = 'BASE TABLE'" +
|
|
52
|
+
dbProvider_1.line +
|
|
53
|
+
" AND TABLE_SCHEMA = 'dbo'" +
|
|
54
|
+
dbProvider_1.line +
|
|
55
|
+
` AND TABLE_NAME = '${table.name}'` +
|
|
56
|
+
dbProvider_1.line +
|
|
57
|
+
' )' +
|
|
58
|
+
dbProvider_1.line +
|
|
59
|
+
'BEGIN' +
|
|
60
|
+
dbProvider_1.line +
|
|
61
|
+
result.sqlCreateTable +
|
|
62
|
+
dbProvider_1.line +
|
|
63
|
+
'END';
|
|
52
64
|
result.sqlCreateTable = sSQL;
|
|
53
65
|
return result;
|
|
54
66
|
}
|
|
55
67
|
getSqlCreateTableSingle(table, withComment) {
|
|
56
|
-
|
|
68
|
+
const result = {
|
|
69
|
+
sqlCreateFK: '',
|
|
70
|
+
sqlCreateTable: '',
|
|
71
|
+
};
|
|
72
|
+
if (!table.columns) {
|
|
73
|
+
return result;
|
|
74
|
+
}
|
|
57
75
|
// Create Columns sql
|
|
58
76
|
let sqlColumn = '';
|
|
59
77
|
table.columns.forEach((column, index) => {
|
|
@@ -70,56 +88,58 @@ class MsSqlProvider extends dbProvider_1.DbProvider {
|
|
|
70
88
|
const sqlPkName = this.renderPkName(table);
|
|
71
89
|
const sqlCluster = table.primaryKey.cluster ? 'CLUSTERED' : 'NONCLUSTERED';
|
|
72
90
|
const sqlPkColumns = table.primaryKey.columns.replace(',\\s*', ', ');
|
|
73
|
-
sqlPrimaryKey =
|
|
74
|
-
+ ` ,CONSTRAINT ${sqlPkName} PRIMARY KEY ${sqlCluster} (${sqlPkColumns})`;
|
|
91
|
+
sqlPrimaryKey =
|
|
92
|
+
dbProvider_1.line + ` ,CONSTRAINT ${sqlPkName} PRIMARY KEY ${sqlCluster} (${sqlPkColumns})`;
|
|
75
93
|
}
|
|
76
94
|
// Unique Indexes SQL
|
|
77
95
|
let sqlUniqueIndex = '';
|
|
78
|
-
|
|
96
|
+
table.indexes?.forEach((index) => {
|
|
79
97
|
if (index.unique) {
|
|
80
98
|
const sqlIndexName = this.renderIndexName(table, index);
|
|
81
99
|
const sqlColumns = index.columns.replace(',\\s*', ', ');
|
|
82
100
|
const sqlCluster = index.cluster ? ' CLUSTERED' : '';
|
|
83
|
-
sqlUniqueIndex += dbProvider_1.line
|
|
84
|
-
+ ` ,CONSTRAINT ${sqlIndexName} UNIQUE${sqlCluster} (${sqlColumns})`;
|
|
101
|
+
sqlUniqueIndex += dbProvider_1.line + ` ,CONSTRAINT ${sqlIndexName} UNIQUE${sqlCluster} (${sqlColumns})`;
|
|
85
102
|
}
|
|
86
103
|
});
|
|
87
104
|
// non-unique Indexes SQL
|
|
88
105
|
let sqlNoUniqueIndex = '';
|
|
89
|
-
|
|
106
|
+
table.indexes?.forEach((index) => {
|
|
90
107
|
if (!index.unique) {
|
|
91
108
|
const sqlIndexName = this.renderIndexName(table, index);
|
|
92
109
|
const sqlColumns = index.columns.replace(',\\s*', ', ');
|
|
93
110
|
const sqlCluster = index.cluster ? ' CLUSTERED' : '';
|
|
94
|
-
sqlNoUniqueIndex +=
|
|
95
|
-
+ `CREATE${sqlCluster} INDEX ${sqlIndexName} ON [${table.name}] (${sqlColumns})`;
|
|
111
|
+
sqlNoUniqueIndex +=
|
|
112
|
+
dbProvider_1.line + `CREATE${sqlCluster} INDEX ${sqlIndexName} ON [${table.name}] (${sqlColumns})`;
|
|
96
113
|
}
|
|
97
114
|
});
|
|
98
115
|
// Generate table sql
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
+ sqlNoUniqueIndex;
|
|
116
|
+
result.sqlCreateTable =
|
|
117
|
+
`-- Create table '${table.name}'` +
|
|
118
|
+
dbProvider_1.line +
|
|
119
|
+
`CREATE TABLE [${table.name}] (` +
|
|
120
|
+
sqlColumn +
|
|
121
|
+
sqlPrimaryKey +
|
|
122
|
+
sqlUniqueIndex +
|
|
123
|
+
dbProvider_1.line +
|
|
124
|
+
')' +
|
|
125
|
+
sqlNoUniqueIndex;
|
|
110
126
|
// Generate Foreign key SQL
|
|
111
127
|
if (table.foreignKeys.length > 0) {
|
|
112
|
-
result.sqlCreateFK =
|
|
113
|
-
+ dbProvider_1.line + `ALTER TABLE [${table.name}] ADD`;
|
|
114
|
-
|
|
128
|
+
result.sqlCreateFK =
|
|
129
|
+
`-- Foreign keys for table '${table.name}'` + dbProvider_1.line + `ALTER TABLE [${table.name}] ADD`;
|
|
130
|
+
table.foreignKeys?.forEach((foreignKey, index) => {
|
|
115
131
|
const sqlFirst = index === 0 ? '' : ',';
|
|
116
132
|
const sqlFkName = this.renderFkName(table, foreignKey);
|
|
117
133
|
const sqlColumns = foreignKey.columns.replace(',\\s*', ', ');
|
|
118
134
|
const sqlRefInfo = `${foreignKey.refTable}(${foreignKey.refColumns.replace(',\\s*', ', ')})`;
|
|
119
135
|
const sqlOptions = foreignKey.options.length > 0 ? foreignKey.options : '';
|
|
120
|
-
result.sqlCreateFK +=
|
|
121
|
-
|
|
122
|
-
|
|
136
|
+
result.sqlCreateFK +=
|
|
137
|
+
dbProvider_1.line +
|
|
138
|
+
`${sqlFirst} CONSTRAINT ${sqlFkName}` +
|
|
139
|
+
dbProvider_1.line +
|
|
140
|
+
` FOREIGN KEY (${sqlColumns})` +
|
|
141
|
+
dbProvider_1.line +
|
|
142
|
+
` REFERENCES ${sqlRefInfo}${sqlOptions}`;
|
|
123
143
|
});
|
|
124
144
|
}
|
|
125
145
|
// Column comment
|
|
@@ -127,15 +147,23 @@ class MsSqlProvider extends dbProvider_1.DbProvider {
|
|
|
127
147
|
if (withComment) {
|
|
128
148
|
// For table comment
|
|
129
149
|
if (table.comment) {
|
|
130
|
-
sqlComment +=
|
|
131
|
-
|
|
132
|
-
|
|
150
|
+
sqlComment +=
|
|
151
|
+
dbProvider_1.line +
|
|
152
|
+
"EXECUTE sp_addextendedproperty N'MS_Description'" +
|
|
153
|
+
dbProvider_1.line +
|
|
154
|
+
` , N${sqlHelper_1.SqlHelper.toSQL(table.comment)}` +
|
|
155
|
+
dbProvider_1.line +
|
|
156
|
+
` , N'user', N'dbo', N'table', N'${table.name}'`;
|
|
133
157
|
}
|
|
134
158
|
// For column comment
|
|
135
159
|
table.columns.forEach((column) => {
|
|
136
|
-
sqlComment +=
|
|
137
|
-
|
|
138
|
-
|
|
160
|
+
sqlComment +=
|
|
161
|
+
dbProvider_1.line +
|
|
162
|
+
"EXECUTE sp_addextendedproperty N'MS_Description'" +
|
|
163
|
+
dbProvider_1.line +
|
|
164
|
+
` , N${sqlHelper_1.SqlHelper.toSQL(this.getColumnComment(column))}` +
|
|
165
|
+
dbProvider_1.line +
|
|
166
|
+
` , N'user', N'dbo', N'table', N'${table.name}', N'column', N'${column.name}'`;
|
|
139
167
|
});
|
|
140
168
|
if (sqlComment) {
|
|
141
169
|
result.sqlCreateTable += dbProvider_1.line + sqlComment;
|
|
@@ -144,38 +172,65 @@ class MsSqlProvider extends dbProvider_1.DbProvider {
|
|
|
144
172
|
return result;
|
|
145
173
|
}
|
|
146
174
|
getSqlDropTableSingle(table) {
|
|
147
|
-
const sSQL = `-- Drop table '${table.name}'`
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
175
|
+
const sSQL = `-- Drop table '${table.name}'` +
|
|
176
|
+
dbProvider_1.line +
|
|
177
|
+
'IF EXISTS (' +
|
|
178
|
+
dbProvider_1.line +
|
|
179
|
+
' SELECT * FROM INFORMATION_SCHEMA.TABLES' +
|
|
180
|
+
dbProvider_1.line +
|
|
181
|
+
" WHERE TABLE_TYPE = 'BASE TABLE'" +
|
|
182
|
+
dbProvider_1.line +
|
|
183
|
+
" AND TABLE_SCHEMA = 'dbo'" +
|
|
184
|
+
dbProvider_1.line +
|
|
185
|
+
` AND TABLE_NAME = '${table.name}'` +
|
|
186
|
+
dbProvider_1.line +
|
|
187
|
+
' )' +
|
|
188
|
+
dbProvider_1.line +
|
|
189
|
+
'BEGIN' +
|
|
190
|
+
dbProvider_1.line +
|
|
191
|
+
` DROP TABLE [dbo].[${table.name}]` +
|
|
192
|
+
dbProvider_1.line +
|
|
193
|
+
'END';
|
|
157
194
|
return sSQL;
|
|
158
195
|
}
|
|
159
196
|
getSqlRemoveFkSingle(table) {
|
|
160
|
-
const sSQL = `-- Drop foreign keys for table '${table.name}'`
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
197
|
+
const sSQL = `-- Drop foreign keys for table '${table.name}'` +
|
|
198
|
+
dbProvider_1.line +
|
|
199
|
+
'DECLARE fk_cursor CURSOR FOR ' +
|
|
200
|
+
dbProvider_1.line +
|
|
201
|
+
' SELECT CONSTRAINT_NAME' +
|
|
202
|
+
dbProvider_1.line +
|
|
203
|
+
' FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS' +
|
|
204
|
+
dbProvider_1.line +
|
|
205
|
+
" WHERE TABLE_SCHEMA = 'dbo'" +
|
|
206
|
+
dbProvider_1.line +
|
|
207
|
+
` AND TABLE_NAME = '${table.name}'` +
|
|
208
|
+
dbProvider_1.line +
|
|
209
|
+
" AND CONSTRAINT_TYPE = 'FOREIGN KEY'" +
|
|
210
|
+
dbProvider_1.line +
|
|
211
|
+
'ORDER BY CONSTRAINT_NAME' +
|
|
212
|
+
dbProvider_1.line +
|
|
213
|
+
'' +
|
|
214
|
+
dbProvider_1.line +
|
|
215
|
+
'OPEN fk_cursor' +
|
|
216
|
+
dbProvider_1.line +
|
|
217
|
+
`FETCH NEXT FROM fk_cursor INTO ${this.foreignKeyNameVariable}` +
|
|
218
|
+
dbProvider_1.line +
|
|
219
|
+
'WHILE @@FETCH_STATUS = 0' +
|
|
220
|
+
dbProvider_1.line +
|
|
221
|
+
'BEGIN' +
|
|
222
|
+
dbProvider_1.line +
|
|
223
|
+
` EXEC('ALTER TABLE [${table.name}] DROP CONSTRAINT ' + ${this.foreignKeyNameVariable})` +
|
|
224
|
+
dbProvider_1.line +
|
|
225
|
+
` FETCH NEXT FROM fk_cursor INTO ${this.foreignKeyNameVariable}` +
|
|
226
|
+
dbProvider_1.line +
|
|
227
|
+
'END' +
|
|
228
|
+
dbProvider_1.line +
|
|
229
|
+
'' +
|
|
230
|
+
dbProvider_1.line +
|
|
231
|
+
'CLOSE fk_cursor' +
|
|
232
|
+
dbProvider_1.line +
|
|
233
|
+
'DEALLOCATE fk_cursor';
|
|
179
234
|
// Return
|
|
180
235
|
return sSQL;
|
|
181
236
|
}
|
|
@@ -192,8 +247,8 @@ class MsSqlProvider extends dbProvider_1.DbProvider {
|
|
|
192
247
|
OutputDropTableSQL(model) {
|
|
193
248
|
let sSQL;
|
|
194
249
|
// Prepare to drop foreign keys
|
|
195
|
-
sSQL =
|
|
196
|
-
+ dbProvider_1.line + `DECLARE ${this.foreignKeyNameVariable} SYSNAME`;
|
|
250
|
+
sSQL =
|
|
251
|
+
'-- Prepare to remove foreign keys' + dbProvider_1.line + `DECLARE ${this.foreignKeyNameVariable} SYSNAME`;
|
|
197
252
|
this.outputlnln(sSQL);
|
|
198
253
|
// Drop foreign key relation
|
|
199
254
|
model.tables.forEach((table) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"msSqlProvider.js","sourceRoot":"","sources":["../../../src/dialects/mssql/msSqlProvider.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"msSqlProvider.js","sourceRoot":"","sources":["../../../src/dialects/mssql/msSqlProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MySqlImportProvider = void 0;
|
|
4
|
+
const mariaDbImportProvider_1 = require("../mariadb/mariaDbImportProvider");
|
|
5
|
+
class MySqlImportProvider extends mariaDbImportProvider_1.MariaDbImportProvider {
|
|
6
|
+
}
|
|
7
|
+
exports.MySqlImportProvider = MySqlImportProvider;
|
|
8
|
+
//# sourceMappingURL=mySqlImportProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mySqlImportProvider.js","sourceRoot":"","sources":["../../../src/dialects/mysql/mySqlImportProvider.ts"],"names":[],"mappings":";;;AAAA,4EAAwE;AAGxE,MAAa,mBAAoB,SAAQ,6CAAqB;CAC7D;AADD,kDACC"}
|
|
@@ -1,21 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export declare class MySqlProvider extends DbProvider {
|
|
4
|
-
private outputSecondChannel;
|
|
5
|
-
private SP_REMVOE_FK_NAME;
|
|
6
|
-
getCreateTableIfNotExistsSql(model: DbModel): string;
|
|
7
|
-
getCreateTableSql(model: DbModel, withComment: boolean): string;
|
|
8
|
-
getDropTableSql(model: DbModel): string;
|
|
9
|
-
getDropThenCreateTableSql(model: DbModel, withComment: boolean): string;
|
|
10
|
-
private getSqlCreateTableIfNotExistsSingle;
|
|
11
|
-
getSqlCreateTableSingle(table: DbTable, withComment: boolean, IfNotExists: boolean): {
|
|
12
|
-
sqlCreateFK: string;
|
|
13
|
-
sqlCreateTable: string;
|
|
14
|
-
};
|
|
15
|
-
private getSQLDropTableSingle;
|
|
16
|
-
private getSqlPostRemoveFK;
|
|
17
|
-
private getSqlPreRemoveFK;
|
|
18
|
-
private getSqlRemoveFkSingle;
|
|
19
|
-
private outputCreateTableSQL;
|
|
20
|
-
private outputDropTableSQL;
|
|
1
|
+
import { MariaDbProvider } from '../mariadb/mariaDbProvider';
|
|
2
|
+
export declare class MySqlProvider extends MariaDbProvider {
|
|
21
3
|
}
|
|
@@ -1,188 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MySqlProvider = void 0;
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
class MySqlProvider extends dbProvider_1.DbProvider {
|
|
7
|
-
constructor() {
|
|
8
|
-
super(...arguments);
|
|
9
|
-
this.outputSecondChannel = 1;
|
|
10
|
-
this.SP_REMVOE_FK_NAME = '__tmp_removeFK';
|
|
11
|
-
}
|
|
12
|
-
getCreateTableIfNotExistsSql(model) {
|
|
13
|
-
this.outputInitialize();
|
|
14
|
-
model.tables.forEach((table) => {
|
|
15
|
-
const { sqlCreateTable, sqlCreateFK } = this.getSqlCreateTableIfNotExistsSingle(table);
|
|
16
|
-
this.outputlnln(sqlCreateTable);
|
|
17
|
-
if (sqlCreateFK.length > 0) {
|
|
18
|
-
this.outputlnln(sqlCreateFK, this.outputSecondChannel);
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
return this.outputCopy();
|
|
22
|
-
}
|
|
23
|
-
getCreateTableSql(model, withComment) {
|
|
24
|
-
this.outputInitialize();
|
|
25
|
-
this.outputCreateTableSQL(model, withComment);
|
|
26
|
-
return this.outputCopy();
|
|
27
|
-
}
|
|
28
|
-
getDropTableSql(model) {
|
|
29
|
-
this.outputInitialize();
|
|
30
|
-
this.outputDropTableSQL(model);
|
|
31
|
-
return this.outputCopy();
|
|
32
|
-
}
|
|
33
|
-
getDropThenCreateTableSql(model, withComment) {
|
|
34
|
-
this.outputInitialize();
|
|
35
|
-
this.outputDropTableSQL(model);
|
|
36
|
-
this.outputCreateTableSQL(model, withComment);
|
|
37
|
-
return this.outputCopy();
|
|
38
|
-
}
|
|
39
|
-
getSqlCreateTableIfNotExistsSingle(objTable) {
|
|
40
|
-
return this.getSqlCreateTableSingle(objTable, false, true);
|
|
41
|
-
}
|
|
42
|
-
getSqlCreateTableSingle(table, withComment, IfNotExists) {
|
|
43
|
-
var _a, _b, _c;
|
|
44
|
-
// Create Columns sql
|
|
45
|
-
let sqlColumn = '';
|
|
46
|
-
table.columns.forEach((column, index) => {
|
|
47
|
-
const sqlComma = index === 0 ? ' ' : ',';
|
|
48
|
-
const sqlNullable = column.nullable ? 'NULL' : 'NOT NULL';
|
|
49
|
-
const sqlDefault = column.default.length === 0 ? '' : ` DEFAULT ${column.default}`;
|
|
50
|
-
const columnComment = this.getColumnComment(column);
|
|
51
|
-
const sqlComment = withComment ? ` COMMENT ${sqlHelper_1.SqlHelper.toSQL(columnComment)}` : '';
|
|
52
|
-
sqlColumn += dbProvider_1.line + ` ${sqlComma}${column.name} ${column.type} ${sqlNullable}${sqlDefault}${sqlComment}`;
|
|
53
|
-
});
|
|
54
|
-
// Primary key SQL
|
|
55
|
-
let sqlPrimaryKey = '';
|
|
56
|
-
if (table.primaryKey) {
|
|
57
|
-
sqlPrimaryKey = dbProvider_1.line
|
|
58
|
-
+ ` ,CONSTRAINT ${this.renderPkName(table)} PRIMARY KEY (${table.primaryKey.columns.replace(',\\s*', ', ')})`;
|
|
59
|
-
}
|
|
60
|
-
// Unique Indexes SQL
|
|
61
|
-
let sqlUniqueIndex = '';
|
|
62
|
-
(_a = table.indexes) === null || _a === void 0 ? void 0 : _a.forEach((index) => {
|
|
63
|
-
if (index.unique) {
|
|
64
|
-
sqlUniqueIndex += dbProvider_1.line
|
|
65
|
-
+ ` ,CONSTRAINT ${this.renderIndexName(table, index)} UNIQUE (${index.columns.replace(',\\s*', ', ')})`;
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
// non-unique Indexes SQL
|
|
69
|
-
let sqlNoUniqueIndex = '';
|
|
70
|
-
(_b = table.indexes) === null || _b === void 0 ? void 0 : _b.forEach((index) => {
|
|
71
|
-
if (!index.unique) {
|
|
72
|
-
sqlNoUniqueIndex += dbProvider_1.line
|
|
73
|
-
+ `CREATE INDEX ${this.renderIndexName(table, index)} ON ${table.name} (${index.columns.replace(',\\s*', ', ')});`;
|
|
74
|
-
}
|
|
75
|
-
});
|
|
76
|
-
const result = {
|
|
77
|
-
sqlCreateFK: '',
|
|
78
|
-
sqlCreateTable: '',
|
|
79
|
-
};
|
|
80
|
-
// const sqlTableComment = withComment ? line + ` COMMENT = ${SqlHelper.toSQL(table.comment)}` : '';
|
|
81
|
-
// `-- Create table '${table.name}'`
|
|
82
|
-
// + line +
|
|
83
|
-
// '
|
|
84
|
-
// + `${sqlTableComment}`
|
|
85
|
-
// + line + '
|
|
86
|
-
result.sqlCreateTable = `CREATE TABLE ${IfNotExists ? 'IF NOT EXISTS ' : ''}${table.name} (`
|
|
87
|
-
+ `${sqlColumn}`
|
|
88
|
-
+ `${sqlPrimaryKey}`
|
|
89
|
-
+ `${sqlUniqueIndex}`
|
|
90
|
-
+ dbProvider_1.line + ');'
|
|
91
|
-
+ `${sqlNoUniqueIndex}`;
|
|
92
|
-
// Generate Foreign key SQL
|
|
93
|
-
if (table.foreignKeys && table.foreignKeys.length > 0) {
|
|
94
|
-
result.sqlCreateFK = `-- Foreign keys for table '${table.name}'`;
|
|
95
|
-
}
|
|
96
|
-
(_c = table.foreignKeys) === null || _c === void 0 ? void 0 : _c.forEach((foreignKey) => {
|
|
97
|
-
const sqlOptions = (foreignKey.options && foreignKey.options.length > 0) ? ' ' + foreignKey.options : '';
|
|
98
|
-
result.sqlCreateFK += ''
|
|
99
|
-
+ dbProvider_1.line + `ALTER TABLE ${table.name}`
|
|
100
|
-
+ dbProvider_1.line + ` ADD CONSTRAINT ${this.renderFkName(table, foreignKey)}`
|
|
101
|
-
+ dbProvider_1.line + ` FOREIGN KEY (${foreignKey.columns.replace(',\\s*', ', ')})`
|
|
102
|
-
+ dbProvider_1.line + ` REFERENCES ${foreignKey.refTable}(${foreignKey.refColumns.replace(/\s*/, '').replace(',', ', ')})${sqlOptions};`;
|
|
103
|
-
});
|
|
104
|
-
return result;
|
|
105
|
-
}
|
|
106
|
-
getSQLDropTableSingle(table) {
|
|
107
|
-
return `DROP TABLE IF EXISTS ${table.name};`;
|
|
108
|
-
}
|
|
109
|
-
getSqlPostRemoveFK() {
|
|
110
|
-
const sSQL = '-- Remove temporary store procedure for remove foreign key'
|
|
111
|
-
+ dbProvider_1.line + `DROP PROCEDURE IF EXISTS ${this.SP_REMVOE_FK_NAME};`;
|
|
112
|
-
// Return
|
|
113
|
-
return sSQL;
|
|
114
|
-
}
|
|
115
|
-
getSqlPreRemoveFK() {
|
|
116
|
-
const sSQL = '-- temporary store procedure for remove foreign key'
|
|
117
|
-
+ dbProvider_1.line + `DROP PROCEDURE IF EXISTS ${this.SP_REMVOE_FK_NAME};`
|
|
118
|
-
+ dbProvider_1.line + 'DELIMITER $$'
|
|
119
|
-
+ dbProvider_1.line + `CREATE PROCEDURE ${this.SP_REMVOE_FK_NAME} (tableName varchar(64))`
|
|
120
|
-
+ dbProvider_1.line + 'BEGIN'
|
|
121
|
-
+ dbProvider_1.line + ' DECLARE fkName varchar(64);'
|
|
122
|
-
+ dbProvider_1.line + ' DECLARE sqlDropFK varchar(250);'
|
|
123
|
-
+ dbProvider_1.line + ' DECLARE done INT DEFAULT 0;'
|
|
124
|
-
+ dbProvider_1.line + ''
|
|
125
|
-
+ dbProvider_1.line + ' DECLARE fkCursor CURSOR FOR'
|
|
126
|
-
+ dbProvider_1.line + ' SELECT CONSTRAINT_NAME FROM information_schema.TABLE_CONSTRAINTS TC'
|
|
127
|
-
+ dbProvider_1.line + ' WHERE TC.TABLE_SCHEMA = database()'
|
|
128
|
-
+ dbProvider_1.line + ' AND TC.TABLE_NAME = tableName'
|
|
129
|
-
+ dbProvider_1.line + " AND TC.CONSTRAINT_TYPE = 'FOREIGN KEY';"
|
|
130
|
-
+ dbProvider_1.line + " DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;"
|
|
131
|
-
+ dbProvider_1.line + ''
|
|
132
|
-
+ dbProvider_1.line + ' OPEN fkCursor;'
|
|
133
|
-
+ dbProvider_1.line + ' FETCH fkCursor INTO fkName;'
|
|
134
|
-
+ dbProvider_1.line + ''
|
|
135
|
-
+ dbProvider_1.line + ' WHILE done = 0 DO'
|
|
136
|
-
+ dbProvider_1.line + " SET @sqlDropFK = CONCAT('ALTER TABLE ', tableName ,' DROP FOREIGN KEY ', fkName, ';');"
|
|
137
|
-
+ dbProvider_1.line + ' PREPARE stmt_dropFK FROM @sqlDropFK;'
|
|
138
|
-
+ dbProvider_1.line + ' EXECUTE stmt_dropFK;'
|
|
139
|
-
+ dbProvider_1.line + ' DEALLOCATE PREPARE stmt_dropFK;'
|
|
140
|
-
+ dbProvider_1.line + ''
|
|
141
|
-
+ dbProvider_1.line + ' FETCH fkCursor INTO fkName;'
|
|
142
|
-
+ dbProvider_1.line + ' END WHILE;'
|
|
143
|
-
+ dbProvider_1.line + ''
|
|
144
|
-
+ dbProvider_1.line + ' CLOSE fkCursor;'
|
|
145
|
-
+ dbProvider_1.line + 'END $$'
|
|
146
|
-
+ dbProvider_1.line + ''
|
|
147
|
-
+ dbProvider_1.line + 'DELIMITER ;';
|
|
148
|
-
// Return
|
|
149
|
-
return sSQL;
|
|
150
|
-
}
|
|
151
|
-
getSqlRemoveFkSingle(table) {
|
|
152
|
-
const sSQL = `-- Remove ${table.name} foreign key constraint`
|
|
153
|
-
+ dbProvider_1.line + `CALL ${this.SP_REMVOE_FK_NAME}('${table.name}');`;
|
|
154
|
-
// Return
|
|
155
|
-
return sSQL;
|
|
156
|
-
}
|
|
157
|
-
outputCreateTableSQL(model, withComment) {
|
|
158
|
-
// Create tables
|
|
159
|
-
model.tables.forEach((table) => {
|
|
160
|
-
const { sqlCreateTable, sqlCreateFK } = this.getSqlCreateTableSingle(table, withComment, false);
|
|
161
|
-
this.outputlnln(sqlCreateTable);
|
|
162
|
-
if (sqlCreateFK.length > 0) {
|
|
163
|
-
this.outputlnln(sqlCreateFK, this.outputSecondChannel);
|
|
164
|
-
}
|
|
165
|
-
});
|
|
166
|
-
}
|
|
167
|
-
outputDropTableSQL(model) {
|
|
168
|
-
let sSQL;
|
|
169
|
-
// Create the store procedure of drop foreign key
|
|
170
|
-
sSQL = this.getSqlPreRemoveFK();
|
|
171
|
-
this.outputlnln(sSQL);
|
|
172
|
-
// Drop foreign key relation
|
|
173
|
-
model.tables.forEach((table) => {
|
|
174
|
-
sSQL = this.getSqlRemoveFkSingle(table);
|
|
175
|
-
this.outputlnln(sSQL);
|
|
176
|
-
});
|
|
177
|
-
// Drop the store procedure of drop foreign key
|
|
178
|
-
sSQL = this.getSqlPostRemoveFK();
|
|
179
|
-
this.outputlnln(sSQL);
|
|
180
|
-
// Drop tables
|
|
181
|
-
model.tables.forEach((table) => {
|
|
182
|
-
sSQL = this.getSQLDropTableSingle(table);
|
|
183
|
-
this.outputlnln(sSQL);
|
|
184
|
-
});
|
|
185
|
-
}
|
|
4
|
+
const mariaDbProvider_1 = require("../mariadb/mariaDbProvider");
|
|
5
|
+
class MySqlProvider extends mariaDbProvider_1.MariaDbProvider {
|
|
186
6
|
}
|
|
187
7
|
exports.MySqlProvider = MySqlProvider;
|
|
188
8
|
//# sourceMappingURL=mySqlProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mySqlProvider.js","sourceRoot":"","sources":["../../../src/dialects/mysql/mySqlProvider.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"mySqlProvider.js","sourceRoot":"","sources":["../../../src/dialects/mysql/mySqlProvider.ts"],"names":[],"mappings":";;;AAAA,gEAA4D;AAE5D,MAAa,aAAc,SAAQ,iCAAe;CACjD;AADD,sCACC"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DbColumn } from '../../models/dbColumn';
|
|
2
|
+
import { DbForeignKey } from '../../models/dbForeignKey';
|
|
3
|
+
import { DbIndex } from '../../models/dbIndex';
|
|
4
|
+
import { DbModel } from '../../models/dbModel';
|
|
5
|
+
import { DbTable } from '../../models/dbTable';
|
|
2
6
|
import { DbProvider } from '../core/dbProvider';
|
|
3
7
|
export declare class OracleProvider extends DbProvider {
|
|
4
8
|
private SP_REMVOE_FK_NAME;
|