miqro 1.5.5 → 1.6.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/README.md +42 -2
- package/dist/cli.js +8 -9
- package/dist/cli.js.map +1 -0
- package/dist/cmds/config-bash.js +1 -0
- package/dist/cmds/config-bash.js.map +1 -0
- package/dist/cmds/config-env.js +1 -0
- package/dist/cmds/config-env.js.map +1 -0
- package/dist/cmds/config-init.js +2 -0
- package/dist/cmds/config-init.js.map +1 -0
- package/dist/cmds/config.js +1 -0
- package/dist/cmds/config.js.map +1 -0
- package/dist/cmds/db-console.js +2 -0
- package/dist/cmds/db-console.js.map +1 -0
- package/dist/cmds/db-createmodel.js +4 -1
- package/dist/cmds/db-createmodel.js.map +1 -0
- package/dist/cmds/db-dump-data.js +2 -0
- package/dist/cmds/db-dump-data.js.map +1 -0
- package/dist/cmds/db-init.js +2 -0
- package/dist/cmds/db-init.js.map +1 -0
- package/dist/cmds/db-makemigrations.js +3 -0
- package/dist/cmds/db-makemigrations.js.map +1 -0
- package/dist/cmds/db-push-data.js +30 -4
- package/dist/cmds/db-push-data.js.map +1 -0
- package/dist/cmds/db-sync-makemigrations.js +3 -0
- package/dist/cmds/db-sync-makemigrations.js.map +1 -0
- package/dist/cmds/doc-json.js +1 -0
- package/dist/cmds/doc-json.js.map +1 -0
- package/dist/cmds/doc-md.js +53 -16
- package/dist/cmds/doc-md.js.map +1 -0
- package/dist/cmds/handler-apiroute-new.js +2 -36
- package/dist/cmds/handler-apiroute-new.js.map +1 -0
- package/dist/cmds/handler-main-new.d.ts +1 -2
- package/dist/cmds/handler-main-new.js +15 -22
- package/dist/cmds/handler-main-new.js.map +1 -0
- package/dist/cmds/new.d.ts +1 -3
- package/dist/cmds/new.js +8 -18
- package/dist/cmds/new.js.map +1 -0
- package/dist/cmds/start.js +4 -0
- package/dist/cmds/start.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/utils/db/automigrations/deep-diff/index.d.ts +24 -0
- package/dist/utils/db/automigrations/deep-diff/index.js +240 -0
- package/dist/utils/db/automigrations/deep-diff/index.js.map +1 -0
- package/dist/utils/db/automigrations/index.js +17 -0
- package/dist/utils/db/automigrations/index.js.map +1 -0
- package/dist/utils/db/automigrations/migrate.js +136 -17
- package/dist/utils/db/automigrations/migrate.js.map +1 -0
- package/dist/utils/db/index.d.ts +3 -3
- package/dist/utils/db/index.js +11 -1
- package/dist/utils/db/index.js.map +1 -0
- package/dist/utils/doc/index.d.ts +10 -8
- package/dist/utils/doc/index.js +4 -1
- package/dist/utils/doc/index.js.map +1 -0
- package/dist/utils/index.d.ts +2 -1
- package/dist/utils/index.js +2 -1
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/templates.d.ts +2 -2
- package/dist/utils/templates.js +6 -0
- package/dist/utils/templates.js.map +1 -0
- package/package.json +9 -15
- package/src/cli.ts +62 -0
- package/src/cmds/config-bash.ts +18 -0
- package/src/cmds/config-env.ts +18 -0
- package/src/cmds/config-init.ts +35 -0
- package/src/cmds/config.ts +16 -0
- package/src/cmds/db-console.ts +35 -0
- package/src/cmds/db-createmodel.ts +44 -0
- package/src/cmds/db-dump-data.ts +44 -0
- package/src/cmds/db-init.ts +42 -0
- package/src/cmds/db-makemigrations.ts +12 -0
- package/src/cmds/db-push-data.ts +77 -0
- package/src/cmds/db-sync-makemigrations.ts +12 -0
- package/src/cmds/doc-json.ts +16 -0
- package/src/cmds/doc-md.ts +233 -0
- package/src/cmds/handler-apiroute-new.ts +67 -0
- package/src/cmds/handler-main-new.ts +85 -0
- package/src/cmds/new.ts +128 -0
- package/src/cmds/start.ts +16 -0
- package/src/index.ts +2 -0
- package/src/utils/db/automigrations/deep-diff/index.ts +264 -0
- package/src/utils/db/automigrations/index.ts +151 -0
- package/src/utils/db/automigrations/migrate.ts +888 -0
- package/src/utils/db/index.ts +128 -0
- package/src/utils/doc/index.ts +31 -0
- package/src/utils/index.ts +9 -0
- package/src/utils/templates.ts +189 -0
- package/tsconfig.json +32 -0
|
@@ -6,25 +6,31 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.writeMigration = exports.getMigration = exports.sortActions = exports.parseDifference = exports.reverseModels = void 0;
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
|
-
const deep_diff_1 = require("deep-diff");
|
|
9
|
+
const deep_diff_1 = require("./deep-diff");
|
|
10
|
+
/* tslint:disable */
|
|
10
11
|
const reverseSequelizeColType = (DataTypes, col, prefix = "Sequelize.") => {
|
|
11
12
|
const attrName = col.type.key;
|
|
12
13
|
const attrObj = col.type;
|
|
13
14
|
const options = (col.type.options) ? col.type.options : {};
|
|
15
|
+
// noinspection SpellCheckingInspection,DuplicateCaseLabelJS
|
|
14
16
|
switch (attrName) {
|
|
17
|
+
// CHAR(length, binary)
|
|
15
18
|
case DataTypes.CHAR.key:
|
|
16
19
|
if (options.binary) {
|
|
17
20
|
return prefix + "CHAR.BINARY";
|
|
18
21
|
}
|
|
19
22
|
return prefix + "CHAR(" + options.length + ")";
|
|
23
|
+
// STRING(length, binary).BINARY
|
|
20
24
|
case DataTypes.STRING.key:
|
|
21
25
|
return prefix + "STRING" + ((options.length) ? "(" + options.length + ")" : "") +
|
|
22
26
|
((options.binary) ? ".BINARY" : "");
|
|
27
|
+
// TEXT(length)
|
|
23
28
|
case DataTypes.TEXT.key:
|
|
24
29
|
if (!options.length) {
|
|
25
30
|
return prefix + "TEXT";
|
|
26
31
|
}
|
|
27
32
|
return prefix + "TEXT(" + options.length.toLowerCase() + ")";
|
|
33
|
+
// NUMBER(length, decimals).UNSIGNED.ZEROFILL
|
|
28
34
|
case DataTypes.NUMBER.key:
|
|
29
35
|
case DataTypes.TINYINT.key:
|
|
30
36
|
case DataTypes.SMALLINT.key:
|
|
@@ -91,6 +97,18 @@ const reverseSequelizeColType = (DataTypes, col, prefix = "Sequelize.") => {
|
|
|
91
97
|
case DataTypes.RANGE.key:
|
|
92
98
|
console.warn(attrName + " type not supported, you should make it by");
|
|
93
99
|
return prefix + attrObj.toSql();
|
|
100
|
+
// BOOLEAN
|
|
101
|
+
// TIME
|
|
102
|
+
// DATE
|
|
103
|
+
// DATEONLY
|
|
104
|
+
// HSTORE
|
|
105
|
+
// JSONB
|
|
106
|
+
// UUID
|
|
107
|
+
// UUIDV1
|
|
108
|
+
// UUIDV4
|
|
109
|
+
// VIRTUAL
|
|
110
|
+
// INET
|
|
111
|
+
// MACADDR
|
|
94
112
|
default:
|
|
95
113
|
return prefix + attrName;
|
|
96
114
|
}
|
|
@@ -114,119 +132,173 @@ const parseIndex = (idx) => {
|
|
|
114
132
|
const options = {};
|
|
115
133
|
if (idx.name) {
|
|
116
134
|
options.name = options.indexName = idx.name;
|
|
117
|
-
}
|
|
135
|
+
} // The name of the index. Default is __
|
|
136
|
+
// @todo: UNIQUE|FULLTEXT|SPATIAL
|
|
118
137
|
if (idx.unique) {
|
|
119
138
|
options.type = options.indicesType = "UNIQUE";
|
|
120
139
|
}
|
|
121
140
|
if (idx.method) {
|
|
122
141
|
options.indexType = idx.type;
|
|
123
|
-
}
|
|
142
|
+
} // Set a type for the index, e.g. BTREE. See the documentation of the used dialect
|
|
124
143
|
if (idx.parser && idx.parser != "") {
|
|
125
144
|
options.parser = idx.parser;
|
|
126
|
-
}
|
|
145
|
+
} // For FULLTEXT columns set your parser
|
|
127
146
|
idx.options = options;
|
|
128
147
|
idx.hash = JSON.stringify(idx);
|
|
148
|
+
// log ('PI:', JSON.stringify(idx, null, 4));
|
|
129
149
|
return idx;
|
|
130
150
|
};
|
|
151
|
+
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
|
|
131
152
|
const reverseModels = (sequelizeModule, sequelize, realModels, logger) => {
|
|
132
153
|
const models = {};
|
|
133
154
|
for (const model in realModels) {
|
|
134
155
|
if (model !== "default") {
|
|
135
156
|
models[model] = {
|
|
136
157
|
tableName: realModels[model].tableName,
|
|
137
|
-
options:
|
|
138
|
-
|
|
158
|
+
options: {
|
|
159
|
+
...realModels[model].options
|
|
160
|
+
},
|
|
161
|
+
rawAttributes: {
|
|
162
|
+
...realModels[model].rawAttributes
|
|
163
|
+
}
|
|
139
164
|
};
|
|
140
165
|
}
|
|
141
166
|
}
|
|
142
167
|
const tables = {};
|
|
143
168
|
delete models.default;
|
|
144
169
|
for (const model in models) {
|
|
170
|
+
// noinspection JSUnfilteredForInLoop
|
|
145
171
|
const attributes = models[model].rawAttributes;
|
|
146
172
|
for (const column in attributes) {
|
|
173
|
+
// noinspection JSUnfilteredForInLoop
|
|
147
174
|
delete attributes[column].Model;
|
|
175
|
+
// noinspection JSUnfilteredForInLoop
|
|
148
176
|
delete attributes[column].fieldName;
|
|
177
|
+
// delete attributes[column].field;
|
|
178
|
+
// noinspection JSUnfilteredForInLoop
|
|
149
179
|
for (const property in attributes[column]) {
|
|
180
|
+
// noinspection JSUnfilteredForInLoop
|
|
150
181
|
if (property.startsWith("_")) {
|
|
182
|
+
// noinspection JSUnfilteredForInLoop
|
|
151
183
|
delete attributes[column][property];
|
|
152
184
|
continue;
|
|
153
185
|
}
|
|
154
186
|
if (property === "defaultValue") {
|
|
187
|
+
// noinspection JSUnfilteredForInLoop
|
|
155
188
|
const _val = reverseSequelizeDefValueType(attributes[column][property]);
|
|
156
189
|
if (_val.notSupported) {
|
|
190
|
+
// noinspection JSUnfilteredForInLoop
|
|
157
191
|
logger.info(`[Not supported] Skip defaultValue column of attribute ${model}:${column}`);
|
|
192
|
+
// noinspection JSUnfilteredForInLoop
|
|
158
193
|
delete attributes[column][property];
|
|
159
194
|
continue;
|
|
160
195
|
}
|
|
196
|
+
// noinspection JSUnfilteredForInLoop
|
|
161
197
|
attributes[column][property] = _val;
|
|
162
198
|
}
|
|
199
|
+
// remove getters, setters...
|
|
200
|
+
// noinspection JSUnfilteredForInLoop
|
|
163
201
|
if (typeof attributes[column][property] == "function") {
|
|
202
|
+
// noinspection JSUnfilteredForInLoop
|
|
164
203
|
delete attributes[column][property];
|
|
165
204
|
}
|
|
166
205
|
}
|
|
206
|
+
// noinspection JSUnfilteredForInLoop
|
|
167
207
|
if (typeof attributes[column].type === "undefined") {
|
|
208
|
+
// noinspection JSUnfilteredForInLoop
|
|
168
209
|
if (!attributes[column].seqType) {
|
|
210
|
+
// noinspection JSUnfilteredForInLoop
|
|
169
211
|
logger.info(`[Not supported] Skip column with undefined type ${model}:${column}`);
|
|
212
|
+
// noinspection JSUnfilteredForInLoop
|
|
170
213
|
delete attributes[column];
|
|
171
214
|
continue;
|
|
172
215
|
}
|
|
173
216
|
else {
|
|
217
|
+
// noinspection JSUnfilteredForInLoop
|
|
174
218
|
if (!["Sequelize.ARRAY(Sequelize.INTEGER)", "Sequelize.ARRAY(Sequelize.STRING)"].includes(attributes[column].seqType)) {
|
|
219
|
+
// noinspection JSUnfilteredForInLoop
|
|
175
220
|
delete attributes[column];
|
|
176
221
|
continue;
|
|
177
222
|
}
|
|
223
|
+
// noinspection JSUnfilteredForInLoop
|
|
178
224
|
attributes[column].type = {
|
|
179
225
|
key: sequelizeModule.ARRAY.key
|
|
180
226
|
};
|
|
181
227
|
}
|
|
182
228
|
}
|
|
229
|
+
// noinspection JSUnfilteredForInLoop
|
|
183
230
|
let seqType = reverseSequelizeColType(sequelizeModule.DataTypes, attributes[column]);
|
|
231
|
+
// NO virtual types in migration
|
|
184
232
|
if (seqType === "Sequelize.VIRTUAL") {
|
|
233
|
+
// noinspection JSUnfilteredForInLoop
|
|
185
234
|
logger.info(`[SKIP] Skip Sequelize.VIRTUAL column "${column}"", defined in model "${model}"`);
|
|
235
|
+
// noinspection JSUnfilteredForInLoop
|
|
186
236
|
delete attributes[column];
|
|
187
237
|
continue;
|
|
188
238
|
}
|
|
189
239
|
if (!seqType) {
|
|
240
|
+
// noinspection JSUnfilteredForInLoop
|
|
190
241
|
if (typeof attributes[column].type.options !== "undefined" && typeof attributes[column].type.options.toString === "function") {
|
|
242
|
+
// noinspection JSUnfilteredForInLoop
|
|
191
243
|
seqType = attributes[column].type.options.toString(sequelize);
|
|
192
244
|
}
|
|
245
|
+
// noinspection JSUnfilteredForInLoop
|
|
193
246
|
if (typeof attributes[column].type.toString === "function") {
|
|
247
|
+
// noinspection JSUnfilteredForInLoop
|
|
194
248
|
seqType = attributes[column].type.toString(sequelize);
|
|
195
249
|
}
|
|
196
250
|
}
|
|
251
|
+
// noinspection JSUnfilteredForInLoop
|
|
197
252
|
attributes[column].seqType = seqType;
|
|
253
|
+
// noinspection JSUnfilteredForInLoop
|
|
198
254
|
delete attributes[column].type;
|
|
199
|
-
|
|
255
|
+
// noinspection JSUnfilteredForInLoop
|
|
256
|
+
delete attributes[column].values; // ENUM
|
|
200
257
|
}
|
|
258
|
+
// noinspection JSUnfilteredForInLoop
|
|
201
259
|
tables[models[model].tableName] = {
|
|
260
|
+
// noinspection JSUnfilteredForInLoop
|
|
202
261
|
tableName: models[model].tableName,
|
|
203
262
|
schema: attributes
|
|
204
263
|
};
|
|
264
|
+
// noinspection JSUnfilteredForInLoop
|
|
205
265
|
if (models[model].options.indexes.length > 0) {
|
|
206
266
|
const idxOut = {};
|
|
267
|
+
// noinspection JSUnfilteredForInLoop
|
|
207
268
|
for (const _i in models[model].options.indexes) {
|
|
269
|
+
// noinspection JSUnfilteredForInLoop
|
|
208
270
|
const index = parseIndex(models[model].options.indexes[_i]);
|
|
209
271
|
idxOut[index.hash + ""] = index;
|
|
210
272
|
delete index.hash;
|
|
273
|
+
// make it immutable
|
|
211
274
|
Object.freeze(index);
|
|
212
275
|
}
|
|
276
|
+
// noinspection JSUnfilteredForInLoop
|
|
277
|
+
// models[model].options.indexes = idxOut;
|
|
213
278
|
tables[models[model].tableName].indexes = idxOut;
|
|
214
279
|
}
|
|
280
|
+
// noinspection JSUnfilteredForInLoop
|
|
215
281
|
if (typeof models[model].options.charset !== "undefined") {
|
|
282
|
+
// noinspection JSUnfilteredForInLoop
|
|
216
283
|
tables[models[model].tableName].charset = models[model].options.charset;
|
|
217
284
|
}
|
|
285
|
+
// noinspection JSUnfilteredForInLoop
|
|
218
286
|
tables[models[model].tableName].indexes = models[model].options.indexes;
|
|
219
287
|
}
|
|
220
288
|
return tables;
|
|
221
289
|
};
|
|
222
290
|
exports.reverseModels = reverseModels;
|
|
223
291
|
const parseDifference = (previousState, currentState, logger) => {
|
|
292
|
+
// log(JSON.stringify(currentState, null, 4));
|
|
224
293
|
const actions = [];
|
|
225
|
-
const difference =
|
|
294
|
+
const difference = deep_diff_1.DEEPDIFF.diff(previousState, currentState);
|
|
226
295
|
if (difference) {
|
|
227
296
|
for (const df of difference) {
|
|
297
|
+
// log (JSON.stringify(df, null, 4));
|
|
228
298
|
switch (df.kind) {
|
|
299
|
+
// add new
|
|
229
300
|
case "N": {
|
|
301
|
+
// new table created
|
|
230
302
|
if (df.path && df.path.length === 1) {
|
|
231
303
|
const depends = [];
|
|
232
304
|
const tableName = df.rhs.tableName;
|
|
@@ -248,13 +320,17 @@ const parseDifference = (previousState, currentState, logger) => {
|
|
|
248
320
|
options,
|
|
249
321
|
depends
|
|
250
322
|
});
|
|
323
|
+
// create indexes
|
|
251
324
|
if (df.rhs.indexes) {
|
|
252
325
|
for (const _i in df.rhs.indexes) {
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
326
|
+
// noinspection JSUnfilteredForInLoop
|
|
327
|
+
actions.push({
|
|
328
|
+
...{
|
|
329
|
+
actionType: "addIndex",
|
|
330
|
+
tableName,
|
|
331
|
+
depends: [tableName]
|
|
332
|
+
}, ...{ ...df.rhs.indexes[_i] }
|
|
333
|
+
});
|
|
258
334
|
}
|
|
259
335
|
}
|
|
260
336
|
break;
|
|
@@ -262,7 +338,9 @@ const parseDifference = (previousState, currentState, logger) => {
|
|
|
262
338
|
const tableName = df.path && df.path[0];
|
|
263
339
|
const depends = [tableName];
|
|
264
340
|
if (df.path && df.path[1] === "schema") {
|
|
341
|
+
// if (df.path.length === 3) - new field
|
|
265
342
|
if (df.path.length === 3) {
|
|
343
|
+
// new field
|
|
266
344
|
if (df.rhs && df.rhs.references) {
|
|
267
345
|
depends.push(df.rhs.references.model);
|
|
268
346
|
}
|
|
@@ -275,8 +353,10 @@ const parseDifference = (previousState, currentState, logger) => {
|
|
|
275
353
|
});
|
|
276
354
|
break;
|
|
277
355
|
}
|
|
356
|
+
// if (df.path.length > 3) - add new attribute to column (change col)
|
|
278
357
|
if (df.path && df.path.length > 3) {
|
|
279
358
|
if (df.path[1] === "schema") {
|
|
359
|
+
// new field attributes
|
|
280
360
|
const options = currentState[tableName].schema[df.path[2]];
|
|
281
361
|
if (options.references) {
|
|
282
362
|
depends.push(options.references.nodel);
|
|
@@ -292,19 +372,27 @@ const parseDifference = (previousState, currentState, logger) => {
|
|
|
292
372
|
}
|
|
293
373
|
}
|
|
294
374
|
}
|
|
375
|
+
// new index
|
|
295
376
|
if (df.path && df.path[1] === "indexes") {
|
|
296
377
|
const tableName = df.path[0];
|
|
297
|
-
const index =
|
|
378
|
+
const index = {
|
|
379
|
+
...df.rhs,
|
|
380
|
+
actionType: "addIndex",
|
|
381
|
+
tableName: tableName,
|
|
382
|
+
depends: "addIndex",
|
|
383
|
+
};
|
|
298
384
|
index.depends = [tableName];
|
|
299
385
|
actions.push(index);
|
|
300
386
|
break;
|
|
301
387
|
}
|
|
302
388
|
break;
|
|
303
389
|
}
|
|
390
|
+
// drop
|
|
304
391
|
case "D": {
|
|
305
392
|
const tableName = df.path && df.path[0];
|
|
306
393
|
const depends = [tableName];
|
|
307
394
|
if (df.path && df.path.length === 1) {
|
|
395
|
+
// drop table
|
|
308
396
|
actions.push({
|
|
309
397
|
actionType: "dropTable",
|
|
310
398
|
tableName,
|
|
@@ -313,7 +401,9 @@ const parseDifference = (previousState, currentState, logger) => {
|
|
|
313
401
|
break;
|
|
314
402
|
}
|
|
315
403
|
if (df.path && df.path[1] === "schema") {
|
|
404
|
+
// if (df.path.length === 3) - drop field
|
|
316
405
|
if (df.path.length === 3) {
|
|
406
|
+
// drop column
|
|
317
407
|
actions.push({
|
|
318
408
|
actionType: "removeColumn",
|
|
319
409
|
tableName,
|
|
@@ -323,7 +413,9 @@ const parseDifference = (previousState, currentState, logger) => {
|
|
|
323
413
|
});
|
|
324
414
|
break;
|
|
325
415
|
}
|
|
416
|
+
// if (df.path.length > 3) - drop attribute from column (change col)
|
|
326
417
|
if (df.path.length > 3) {
|
|
418
|
+
// new field attributes
|
|
327
419
|
const options = currentState[tableName].schema[df.path[2]];
|
|
328
420
|
if (options.references) {
|
|
329
421
|
depends.push(options.references.nodel);
|
|
@@ -339,6 +431,7 @@ const parseDifference = (previousState, currentState, logger) => {
|
|
|
339
431
|
}
|
|
340
432
|
}
|
|
341
433
|
if (df.path && df.path[1] === "indexes") {
|
|
434
|
+
// log(df)
|
|
342
435
|
actions.push({
|
|
343
436
|
actionType: "removeIndex",
|
|
344
437
|
tableName,
|
|
@@ -350,10 +443,12 @@ const parseDifference = (previousState, currentState, logger) => {
|
|
|
350
443
|
}
|
|
351
444
|
break;
|
|
352
445
|
}
|
|
446
|
+
// edit
|
|
353
447
|
case "E": {
|
|
354
448
|
const tableName = df.path && df.path[0];
|
|
355
449
|
const depends = [tableName];
|
|
356
450
|
if (df.path && df.path[1] === "schema") {
|
|
451
|
+
// new field attributes
|
|
357
452
|
const options = currentState[tableName].schema[df.path[2]];
|
|
358
453
|
if (options.references) {
|
|
359
454
|
depends.push(options.references.nodel);
|
|
@@ -366,11 +461,15 @@ const parseDifference = (previousState, currentState, logger) => {
|
|
|
366
461
|
depends
|
|
367
462
|
});
|
|
368
463
|
}
|
|
464
|
+
// updated index
|
|
465
|
+
// only support updating and dropping indexes
|
|
369
466
|
if (df.path && df.path[1] === "indexes") {
|
|
370
467
|
const tableName = df.path && df.path[0];
|
|
371
468
|
let keys = Object.keys(df.rhs);
|
|
469
|
+
// noinspection LoopStatementThatDoesntLoopJS
|
|
372
470
|
for (const k in keys) {
|
|
373
471
|
const key = keys[k];
|
|
472
|
+
// noinspection JSUnusedLocalSymbols
|
|
374
473
|
actions.push({
|
|
375
474
|
actionType: "addIndex",
|
|
376
475
|
tableName,
|
|
@@ -381,8 +480,10 @@ const parseDifference = (previousState, currentState, logger) => {
|
|
|
381
480
|
break;
|
|
382
481
|
}
|
|
383
482
|
keys = Object.keys(df.lhs);
|
|
483
|
+
// noinspection LoopStatementThatDoesntLoopJS
|
|
384
484
|
for (const k in keys) {
|
|
385
485
|
const key = keys[k];
|
|
486
|
+
// noinspection JSUnusedLocalSymbols
|
|
386
487
|
actions.push({
|
|
387
488
|
actionType: "removeIndex",
|
|
388
489
|
tableName,
|
|
@@ -395,6 +496,7 @@ const parseDifference = (previousState, currentState, logger) => {
|
|
|
395
496
|
}
|
|
396
497
|
break;
|
|
397
498
|
}
|
|
499
|
+
// array change indexes
|
|
398
500
|
case "A": {
|
|
399
501
|
logger.info("[Not supported] Array model changes! Problems are possible. Please, check result more carefully!");
|
|
400
502
|
logger.info("[Not supported] Difference: ");
|
|
@@ -402,6 +504,7 @@ const parseDifference = (previousState, currentState, logger) => {
|
|
|
402
504
|
break;
|
|
403
505
|
}
|
|
404
506
|
default:
|
|
507
|
+
// code
|
|
405
508
|
break;
|
|
406
509
|
}
|
|
407
510
|
}
|
|
@@ -419,6 +522,8 @@ const sortActions = (actions) => {
|
|
|
419
522
|
"changeColumn",
|
|
420
523
|
"addIndex"
|
|
421
524
|
];
|
|
525
|
+
// test
|
|
526
|
+
// actions = shuffleArray(actions);
|
|
422
527
|
actions.sort((a, b) => {
|
|
423
528
|
if (orderedActionTypes.indexOf(a.actionType) < orderedActionTypes.indexOf(b.actionType)) {
|
|
424
529
|
return -1;
|
|
@@ -428,10 +533,10 @@ const sortActions = (actions) => {
|
|
|
428
533
|
}
|
|
429
534
|
if (a.depends.length === 0 && b.depends.length > 0) {
|
|
430
535
|
return -1;
|
|
431
|
-
}
|
|
536
|
+
} // a < b
|
|
432
537
|
if (b.depends.length === 0 && a.depends.length > 0) {
|
|
433
538
|
return 1;
|
|
434
|
-
}
|
|
539
|
+
} // b < a
|
|
435
540
|
return 0;
|
|
436
541
|
});
|
|
437
542
|
for (let k = 0; k <= actions.length; k++) {
|
|
@@ -464,28 +569,36 @@ const sortActions = (actions) => {
|
|
|
464
569
|
}
|
|
465
570
|
};
|
|
466
571
|
exports.sortActions = sortActions;
|
|
572
|
+
// noinspection SpellCheckingInspection
|
|
467
573
|
const getMigration = (actions) => {
|
|
468
574
|
const propertyToStr = (obj) => {
|
|
575
|
+
// noinspection SpellCheckingInspection
|
|
469
576
|
const vals = [];
|
|
470
577
|
for (const k in obj) {
|
|
471
578
|
if (k === "seqType") {
|
|
579
|
+
// noinspection JSUnfilteredForInLoop
|
|
472
580
|
vals.push('"type": ' + obj[k]);
|
|
473
581
|
continue;
|
|
474
582
|
}
|
|
475
583
|
if (k === "defaultValue") {
|
|
584
|
+
// noinspection JSUnfilteredForInLoop
|
|
476
585
|
if (obj[k].internal) {
|
|
586
|
+
// noinspection JSUnfilteredForInLoop
|
|
477
587
|
vals.push('"defaultValue": ' + obj[k].value);
|
|
478
588
|
continue;
|
|
479
589
|
}
|
|
590
|
+
// noinspection JSUnfilteredForInLoop
|
|
480
591
|
if (obj[k].notSupported) {
|
|
481
592
|
continue;
|
|
482
593
|
}
|
|
483
594
|
const x = {};
|
|
595
|
+
// noinspection JSUnfilteredForInLoop
|
|
484
596
|
x[k] = obj[k].value;
|
|
485
597
|
vals.push(JSON.stringify(x).slice(1, -1));
|
|
486
598
|
continue;
|
|
487
599
|
}
|
|
488
600
|
const x = {};
|
|
601
|
+
// noinspection JSUnfilteredForInLoop
|
|
489
602
|
x[k] = obj[k];
|
|
490
603
|
vals.push(JSON.stringify(x).slice(1, -1));
|
|
491
604
|
}
|
|
@@ -494,6 +607,7 @@ const getMigration = (actions) => {
|
|
|
494
607
|
const getAttributes = (attrs) => {
|
|
495
608
|
const ret = [];
|
|
496
609
|
for (const attrName in attrs) {
|
|
610
|
+
// noinspection JSUnfilteredForInLoop
|
|
497
611
|
ret.push(` "${attrName}": ${propertyToStr(attrs[attrName])}`);
|
|
498
612
|
}
|
|
499
613
|
return " { \n" + ret.join(", \n") + "\n }";
|
|
@@ -501,7 +615,9 @@ const getMigration = (actions) => {
|
|
|
501
615
|
const commandsUp = [];
|
|
502
616
|
const consoleOut = [];
|
|
503
617
|
for (const _i in actions) {
|
|
618
|
+
// noinspection JSUnfilteredForInLoop
|
|
504
619
|
const action = actions[_i];
|
|
620
|
+
// noinspection FallThroughInSwitchStatementJS,FallThroughInSwitchStatementJS
|
|
505
621
|
switch (action.actionType) {
|
|
506
622
|
case "createTable":
|
|
507
623
|
{
|
|
@@ -563,6 +679,7 @@ const getMigration = (actions) => {
|
|
|
563
679
|
}
|
|
564
680
|
break;
|
|
565
681
|
case "removeIndex": {
|
|
682
|
+
// log(action)
|
|
566
683
|
const nameOrAttrs = (action.options && action.options.indexName && action.options.indexName != "") ? `"${action.options.indexName}"` : JSON.stringify(action.fields);
|
|
567
684
|
const res = `{ fn: "removeIndex", params: [
|
|
568
685
|
"${action.tableName}",
|
|
@@ -572,15 +689,16 @@ const getMigration = (actions) => {
|
|
|
572
689
|
consoleOut.push(`removeIndex ${nameOrAttrs} from table "${action.tableName}"`);
|
|
573
690
|
}
|
|
574
691
|
default:
|
|
692
|
+
// code
|
|
575
693
|
}
|
|
576
694
|
}
|
|
577
695
|
return { commandsUp, consoleOut };
|
|
578
696
|
};
|
|
579
697
|
exports.getMigration = getMigration;
|
|
580
|
-
;
|
|
581
698
|
const writeMigration = (revision, migration, migrationsDir, name = "", comment = "") => {
|
|
582
699
|
const _commands = "var migrationCommands = [ \n" + migration.commandsUp.join(", \n") + " \n];\n";
|
|
583
700
|
const _actions = " * " + migration.consoleOut.join("\n * ");
|
|
701
|
+
//_commands = js_beautify(_commands);
|
|
584
702
|
const info = {
|
|
585
703
|
revision,
|
|
586
704
|
name,
|
|
@@ -633,3 +751,4 @@ module.exports = {
|
|
|
633
751
|
return { filename, info };
|
|
634
752
|
};
|
|
635
753
|
exports.writeMigration = writeMigration;
|
|
754
|
+
//# sourceMappingURL=migrate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../../../src/utils/db/automigrations/migrate.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/db/index.d.ts
CHANGED
|
@@ -5,16 +5,16 @@ export interface SequelizeRC {
|
|
|
5
5
|
"seeders-path": string;
|
|
6
6
|
"models-path": string;
|
|
7
7
|
}
|
|
8
|
-
export declare const loadSequelizeRC: (sequelizercPath?: string, logger?: Logger) => SequelizeRC;
|
|
8
|
+
export declare const loadSequelizeRC: (sequelizercPath?: string, logger?: Logger | undefined) => SequelizeRC;
|
|
9
9
|
export declare const loadModels: (args?: {
|
|
10
10
|
"models-path": string;
|
|
11
|
-
}) => {
|
|
11
|
+
} | undefined) => {
|
|
12
12
|
path: string;
|
|
13
13
|
modelsModule: any;
|
|
14
14
|
};
|
|
15
15
|
export declare const loadSequelize: (args?: {
|
|
16
16
|
"models-path": string;
|
|
17
|
-
}, l?: Logger) => any;
|
|
17
|
+
} | undefined, l?: Logger | undefined) => any;
|
|
18
18
|
export declare const initDBConfig: () => boolean;
|
|
19
19
|
export declare const makemigrations: () => void;
|
|
20
20
|
export declare const syncMakeMigrations: () => void;
|
package/dist/utils/db/index.js
CHANGED
|
@@ -8,13 +8,17 @@ const templates_1 = require("../../utils/templates");
|
|
|
8
8
|
const core_1 = require("@miqro/core");
|
|
9
9
|
const logger = console;
|
|
10
10
|
const loadSequelizeRC = (sequelizercPath = core_1.ConfigPathResolver.getSequelizeRCFilePath(), logger) => {
|
|
11
|
+
// noinspection SpellCheckingInspection
|
|
11
12
|
if (!(0, fs_1.existsSync)(sequelizercPath)) {
|
|
13
|
+
// noinspection SpellCheckingInspection
|
|
12
14
|
throw new core_1.ConfigFileNotFoundError(`missing ${sequelizercPath} file. maybe you didnt init your db config.`);
|
|
13
15
|
}
|
|
14
16
|
else {
|
|
15
17
|
if (logger) {
|
|
16
18
|
logger.debug(`loading sequelize config from [${sequelizercPath}]`);
|
|
17
19
|
}
|
|
20
|
+
// noinspection SpellCheckingInspection
|
|
21
|
+
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
18
22
|
const sequelizerc = require(sequelizercPath);
|
|
19
23
|
return (0, core_1.parse)(sequelizercPath, sequelizerc, [
|
|
20
24
|
{ name: "config", type: "string", required: true },
|
|
@@ -46,6 +50,7 @@ const loadSequelize = (args, l) => {
|
|
|
46
50
|
return modelsModule.sequelize;
|
|
47
51
|
};
|
|
48
52
|
exports.loadSequelize = loadSequelize;
|
|
53
|
+
// noinspection SpellCheckingInspection
|
|
49
54
|
const initDBConfig = () => {
|
|
50
55
|
try {
|
|
51
56
|
const initDir = (p) => {
|
|
@@ -66,19 +71,22 @@ const initDBConfig = () => {
|
|
|
66
71
|
logger.warn(`${p} already exists!. init will not create it.`);
|
|
67
72
|
}
|
|
68
73
|
};
|
|
74
|
+
// noinspection SpellCheckingInspection
|
|
69
75
|
const sequelizercPath = (0, path_1.resolve)(core_1.ConfigPathResolver.getBaseDirname(), ".sequelizerc");
|
|
70
76
|
if ((0, fs_1.existsSync)(sequelizercPath)) {
|
|
71
77
|
logger.warn(`.sequelizerc already exists!. init will do nothing.`);
|
|
72
78
|
return false;
|
|
73
79
|
}
|
|
74
80
|
else {
|
|
75
|
-
|
|
81
|
+
// disable experimental typescript support
|
|
82
|
+
const typescript = false; //existsSync(resolve(ConfigPathResolver.getBaseDirname(), "tsconfig.json")) ? true : false;
|
|
76
83
|
const dbFolder = (0, path_1.resolve)(core_1.ConfigPathResolver.getBaseDirname(), "db");
|
|
77
84
|
const migrationsFolder = (0, path_1.resolve)(dbFolder, "migrations");
|
|
78
85
|
const modelsFolder = typescript ? (0, path_1.resolve)("src", "models") : (0, path_1.resolve)(dbFolder, "models");
|
|
79
86
|
const seedersFolder = (0, path_1.resolve)(dbFolder, "seeders");
|
|
80
87
|
const modelLoaderPath = (0, path_1.resolve)(modelsFolder, typescript ? "index.ts" : "index.js");
|
|
81
88
|
const dbConfigFilePath = (0, path_1.resolve)(dbFolder, "connection.js");
|
|
89
|
+
// noinspection SpellCheckingInspection
|
|
82
90
|
initFile(sequelizercPath, templates_1.templates.sequelizerc(typescript));
|
|
83
91
|
initDir(dbFolder);
|
|
84
92
|
initFile(dbConfigFilePath, templates_1.templates.dbConfig);
|
|
@@ -95,6 +103,7 @@ const initDBConfig = () => {
|
|
|
95
103
|
}
|
|
96
104
|
};
|
|
97
105
|
exports.initDBConfig = initDBConfig;
|
|
106
|
+
// noinspection SpellCheckingInspection
|
|
98
107
|
const makemigrations = () => {
|
|
99
108
|
try {
|
|
100
109
|
(0, automigrations_1.makemigrationsImpl)();
|
|
@@ -115,3 +124,4 @@ const syncMakeMigrations = () => {
|
|
|
115
124
|
}
|
|
116
125
|
};
|
|
117
126
|
exports.syncMakeMigrations = syncMakeMigrations;
|
|
127
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/db/index.ts"],"names":[],"mappings":"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"}
|