mysqlsyncr 1.0.80 → 1.0.84

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/dist/index.js CHANGED
@@ -6,7 +6,6 @@ import path, { normalize, resolve, dirname, basename, extname, relative, join }
6
6
  import yargs from 'yargs';
7
7
  import { notStrictEqual, strictEqual } from 'assert';
8
8
  import { fileURLToPath } from 'url';
9
- import 'module';
10
9
  import fs, { readdir, mkdir } from 'fs/promises';
11
10
  import express from 'express';
12
11
  import http from 'http';
@@ -3188,7 +3187,14 @@ var findDifferences = function findDifferences(expected, current) {
3188
3187
  _tableName = _Object$entries$_i[0],
3189
3188
  contents = _Object$entries$_i[1];
3190
3189
  //check if craete table matches from json, if so, we dont need to compare indexes, triggers, or fields
3191
-
3190
+ var columns = contents.columns,
3191
+ indexes = contents.indexes,
3192
+ triggers = contents.triggers;
3193
+ contents.createSQL;
3194
+ contents.name;
3195
+ contents.engine;
3196
+ contents.charset;
3197
+ contents.collate;
3192
3198
  if (!current.tables[_tableName]) {
3193
3199
  console.log('missing_table', contents);
3194
3200
  differences.push({
@@ -3198,6 +3204,74 @@ var findDifferences = function findDifferences(expected, current) {
3198
3204
  });
3199
3205
  continue;
3200
3206
  }
3207
+ try {
3208
+ //verify triggers
3209
+ logger('Verifying triggers for table', _tableName);
3210
+ var _iterator = _createForOfIteratorHelper(triggers),
3211
+ _step;
3212
+ try {
3213
+ var _loop = function _loop() {
3214
+ var trigger = _step.value;
3215
+ var currentTrigger = current.tables[_tableName].triggers.find(function (t) {
3216
+ return t.Name === trigger.Name;
3217
+ });
3218
+ if (!currentTrigger) {
3219
+ logger('Missing trigger', trigger);
3220
+ differences.push({
3221
+ type: 'missing_trigger',
3222
+ tableName: _tableName,
3223
+ trigger: trigger
3224
+ });
3225
+ } else {
3226
+ // Compare additional properties if needed
3227
+ if (currentTrigger.Event !== trigger.Event || currentTrigger.Statement !== trigger.Statement) {
3228
+ logger('Mismatched trigger', {
3229
+ expected: trigger,
3230
+ current: currentTrigger
3231
+ });
3232
+ differences.push({
3233
+ type: 'mismatched_trigger',
3234
+ tableName: _tableName,
3235
+ trigger: trigger
3236
+ });
3237
+ }
3238
+ }
3239
+ };
3240
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
3241
+ _loop();
3242
+ }
3243
+ } catch (err) {
3244
+ _iterator.e(err);
3245
+ } finally {
3246
+ _iterator.f();
3247
+ }
3248
+ var _iterator2 = _createForOfIteratorHelper(current.tables[_tableName].triggers),
3249
+ _step2;
3250
+ try {
3251
+ var _loop2 = function _loop2() {
3252
+ var trigger = _step2.value;
3253
+ if (!triggers.some(function (t) {
3254
+ return t.Name === trigger.Name;
3255
+ })) {
3256
+ logger('Extra trigger', trigger);
3257
+ differences.push({
3258
+ type: 'extra_trigger',
3259
+ tableName: _tableName,
3260
+ trigger: trigger
3261
+ });
3262
+ }
3263
+ };
3264
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
3265
+ _loop2();
3266
+ }
3267
+ } catch (err) {
3268
+ _iterator2.e(err);
3269
+ } finally {
3270
+ _iterator2.f();
3271
+ }
3272
+ } catch (e) {
3273
+ console.error("Error verifying triggers for table ".concat(_tableName), e);
3274
+ }
3201
3275
  var createTableSql = current.tables[_tableName].createSQL;
3202
3276
  if (createTableSql === contents.createSQL) {
3203
3277
  logger("Table ".concat(_tableName, " createSQL matches from json, skipping indexes, triggers, and fields"));
@@ -3207,14 +3281,6 @@ var findDifferences = function findDifferences(expected, current) {
3207
3281
  logger(createTableSql);
3208
3282
  logger(contents.createSQL);
3209
3283
  }
3210
- var columns = contents.columns,
3211
- indexes = contents.indexes,
3212
- triggers = contents.triggers;
3213
- contents.createSQL;
3214
- contents.name;
3215
- contents.engine;
3216
- contents.charset;
3217
- contents.collate;
3218
3284
  current.tables[_tableName].columns.map(function (f) {
3219
3285
  return f.Field;
3220
3286
  });
@@ -3231,11 +3297,11 @@ var findDifferences = function findDifferences(expected, current) {
3231
3297
 
3232
3298
  logger('Detecting extra fields for table', _tableName);
3233
3299
  // Detect extra fields
3234
- var _iterator = _createForOfIteratorHelper(current.tables[_tableName].columns),
3235
- _step;
3300
+ var _iterator3 = _createForOfIteratorHelper(current.tables[_tableName].columns),
3301
+ _step3;
3236
3302
  try {
3237
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
3238
- var field = _step.value;
3303
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
3304
+ var field = _step3.value;
3239
3305
  if (!expectedFieldNames.includes(field.Field)) {
3240
3306
  differences.push({
3241
3307
  type: 'extra_field',
@@ -3247,16 +3313,16 @@ var findDifferences = function findDifferences(expected, current) {
3247
3313
 
3248
3314
  // verify Type Null and Default
3249
3315
  } catch (err) {
3250
- _iterator.e(err);
3316
+ _iterator3.e(err);
3251
3317
  } finally {
3252
- _iterator.f();
3318
+ _iterator3.f();
3253
3319
  }
3254
3320
  logger('Verifying Type Null and Default for table', _tableName);
3255
- var _iterator2 = _createForOfIteratorHelper(columns),
3256
- _step2;
3321
+ var _iterator4 = _createForOfIteratorHelper(columns),
3322
+ _step4;
3257
3323
  try {
3258
- var _loop = function _loop() {
3259
- var field = _step2.value;
3324
+ var _loop3 = function _loop3() {
3325
+ var field = _step4.value;
3260
3326
  var currentField = current.tables[_tableName].columns.find(function (f) {
3261
3327
  return f.Field === field.Field;
3262
3328
  });
@@ -3308,23 +3374,23 @@ var findDifferences = function findDifferences(expected, current) {
3308
3374
  }
3309
3375
  },
3310
3376
  _ret;
3311
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
3312
- _ret = _loop();
3377
+ for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
3378
+ _ret = _loop3();
3313
3379
  if (_ret === 0) continue;
3314
3380
  }
3315
3381
 
3316
3382
  // verify indexes
3317
3383
  } catch (err) {
3318
- _iterator2.e(err);
3384
+ _iterator4.e(err);
3319
3385
  } finally {
3320
- _iterator2.f();
3386
+ _iterator4.f();
3321
3387
  }
3322
3388
  logger('Verifying indexes for table', _tableName);
3323
- var _iterator3 = _createForOfIteratorHelper(indexes),
3324
- _step3;
3389
+ var _iterator5 = _createForOfIteratorHelper(indexes),
3390
+ _step5;
3325
3391
  try {
3326
- var _loop2 = function _loop2() {
3327
- var index = _step3.value;
3392
+ var _loop4 = function _loop4() {
3393
+ var index = _step5.value;
3328
3394
  // Check if the current index matches the expected index structure
3329
3395
  var currentIndex = current.tables[_tableName].indexes.find(function (i) {
3330
3396
  return i.ColumnName.sort().join(', ') === index.ColumnName.sort().join(', ');
@@ -3360,19 +3426,19 @@ var findDifferences = function findDifferences(expected, current) {
3360
3426
  }
3361
3427
  }
3362
3428
  };
3363
- for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
3364
- _loop2();
3429
+ for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
3430
+ _loop4();
3365
3431
  }
3366
3432
  } catch (err) {
3367
- _iterator3.e(err);
3433
+ _iterator5.e(err);
3368
3434
  } finally {
3369
- _iterator3.f();
3435
+ _iterator5.f();
3370
3436
  }
3371
- var _iterator4 = _createForOfIteratorHelper(current.tables[_tableName].indexes),
3372
- _step4;
3437
+ var _iterator6 = _createForOfIteratorHelper(current.tables[_tableName].indexes),
3438
+ _step6;
3373
3439
  try {
3374
- var _loop3 = function _loop3() {
3375
- var index = _step4.value;
3440
+ var _loop5 = function _loop5() {
3441
+ var index = _step6.value;
3376
3442
  logger('Checking index', index);
3377
3443
  var indexFound = false;
3378
3444
 
@@ -3389,71 +3455,6 @@ var findDifferences = function findDifferences(expected, current) {
3389
3455
  });
3390
3456
  }
3391
3457
  };
3392
- for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
3393
- _loop3();
3394
- }
3395
-
3396
- //verify triggers
3397
- } catch (err) {
3398
- _iterator4.e(err);
3399
- } finally {
3400
- _iterator4.f();
3401
- }
3402
- logger('Verifying triggers for table', _tableName);
3403
- var _iterator5 = _createForOfIteratorHelper(triggers),
3404
- _step5;
3405
- try {
3406
- var _loop4 = function _loop4() {
3407
- var trigger = _step5.value;
3408
- var currentTrigger = current.tables[_tableName].triggers.find(function (t) {
3409
- return t.Name === trigger.Name;
3410
- });
3411
- if (!currentTrigger) {
3412
- logger('Missing trigger', trigger);
3413
- differences.push({
3414
- type: 'missing_trigger',
3415
- tableName: _tableName,
3416
- trigger: trigger
3417
- });
3418
- } else {
3419
- // Compare additional properties if needed
3420
- if (currentTrigger.Event !== trigger.Event || currentTrigger.Statement !== trigger.Statement) {
3421
- logger('Mismatched trigger', {
3422
- expected: trigger,
3423
- current: currentTrigger
3424
- });
3425
- differences.push({
3426
- type: 'mismatched_trigger',
3427
- tableName: _tableName,
3428
- trigger: trigger
3429
- });
3430
- }
3431
- }
3432
- };
3433
- for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
3434
- _loop4();
3435
- }
3436
- } catch (err) {
3437
- _iterator5.e(err);
3438
- } finally {
3439
- _iterator5.f();
3440
- }
3441
- var _iterator6 = _createForOfIteratorHelper(current.tables[_tableName].triggers),
3442
- _step6;
3443
- try {
3444
- var _loop5 = function _loop5() {
3445
- var trigger = _step6.value;
3446
- if (!triggers.some(function (t) {
3447
- return t.Name === trigger.Name;
3448
- })) {
3449
- logger('Extra trigger', trigger);
3450
- differences.push({
3451
- type: 'extra_trigger',
3452
- tableName: _tableName,
3453
- trigger: trigger
3454
- });
3455
- }
3456
- };
3457
3458
  for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
3458
3459
  _loop5();
3459
3460
  }
@@ -4058,12 +4059,12 @@ var compareAllDatabases = /*#__PURE__*/function () {
4058
4059
  expectedDatabases = expectedDatabases.filter(function (file) {
4059
4060
  return file !== 'dumpInfo.json';
4060
4061
  });
4061
- // console.log('Expected databases from input directory:', expectedDatabases);
4062
+ console.log('Expected databases from input directory:', expectedDatabases);
4062
4063
 
4063
4064
  // Check existing databases
4064
- _context.next = 13;
4065
+ _context.next = 14;
4065
4066
  return getDatabases(connection);
4066
- case 13:
4067
+ case 14:
4067
4068
  existingDatabases = _context.sent;
4068
4069
  // console.log('Existing databases:', existingDatabases);
4069
4070
  allDifferences = {};
@@ -4072,20 +4073,20 @@ var compareAllDatabases = /*#__PURE__*/function () {
4072
4073
 
4073
4074
  // Note missing databases and prepare to create them
4074
4075
  _iterator = _createForOfIteratorHelper(expectedDatabases);
4075
- _context.prev = 18;
4076
+ _context.prev = 19;
4076
4077
  _iterator.s();
4077
- case 20:
4078
+ case 21:
4078
4079
  if ((_step = _iterator.n()).done) {
4079
- _context.next = 27;
4080
+ _context.next = 28;
4080
4081
  break;
4081
4082
  }
4082
4083
  _database = _step.value;
4083
4084
  if (!(options && options.database && options.database !== _database)) {
4084
- _context.next = 24;
4085
+ _context.next = 25;
4085
4086
  break;
4086
4087
  }
4087
- return _context.abrupt("continue", 25);
4088
- case 24:
4088
+ return _context.abrupt("continue", 26);
4089
+ case 25:
4089
4090
  if (!existingDatabases.includes(_database)) {
4090
4091
  allDifferences[_database] = [{
4091
4092
  database: _database,
@@ -4094,58 +4095,58 @@ var compareAllDatabases = /*#__PURE__*/function () {
4094
4095
  }];
4095
4096
  missingDatabases.push(_database);
4096
4097
  }
4097
- case 25:
4098
- _context.next = 20;
4098
+ case 26:
4099
+ _context.next = 21;
4099
4100
  break;
4100
- case 27:
4101
- _context.next = 32;
4101
+ case 28:
4102
+ _context.next = 33;
4102
4103
  break;
4103
- case 29:
4104
- _context.prev = 29;
4105
- _context.t0 = _context["catch"](18);
4104
+ case 30:
4105
+ _context.prev = 30;
4106
+ _context.t0 = _context["catch"](19);
4106
4107
  _iterator.e(_context.t0);
4107
- case 32:
4108
- _context.prev = 32;
4108
+ case 33:
4109
+ _context.prev = 33;
4109
4110
  _iterator.f();
4110
- return _context.finish(32);
4111
- case 35:
4111
+ return _context.finish(33);
4112
+ case 36:
4112
4113
  if (!(missingDatabases.length > 0 && update)) {
4113
- _context.next = 58;
4114
+ _context.next = 59;
4114
4115
  break;
4115
4116
  }
4116
4117
  console.log('Creating missing databases:');
4117
4118
  _iterator2 = _createForOfIteratorHelper(missingDatabases);
4118
- _context.prev = 38;
4119
+ _context.prev = 39;
4119
4120
  _iterator2.s();
4120
- case 40:
4121
+ case 41:
4121
4122
  if ((_step2 = _iterator2.n()).done) {
4122
- _context.next = 48;
4123
+ _context.next = 49;
4123
4124
  break;
4124
4125
  }
4125
4126
  database = _step2.value;
4126
4127
  console.log("Creating database ".concat(database, "..."));
4127
- _context.next = 45;
4128
+ _context.next = 46;
4128
4129
  return connection.query("CREATE DATABASE `".concat(database, "`;"));
4129
- case 45:
4130
- console.log("Database ".concat(database, " created."));
4131
4130
  case 46:
4132
- _context.next = 40;
4131
+ console.log("Database ".concat(database, " created."));
4132
+ case 47:
4133
+ _context.next = 41;
4133
4134
  break;
4134
- case 48:
4135
- _context.next = 53;
4135
+ case 49:
4136
+ _context.next = 54;
4136
4137
  break;
4137
- case 50:
4138
- _context.prev = 50;
4139
- _context.t1 = _context["catch"](38);
4138
+ case 51:
4139
+ _context.prev = 51;
4140
+ _context.t1 = _context["catch"](39);
4140
4141
  _iterator2.e(_context.t1);
4141
- case 53:
4142
- _context.prev = 53;
4142
+ case 54:
4143
+ _context.prev = 54;
4143
4144
  _iterator2.f();
4144
- return _context.finish(53);
4145
- case 56:
4146
- _context.next = 59;
4145
+ return _context.finish(54);
4146
+ case 57:
4147
+ _context.next = 60;
4147
4148
  break;
4148
- case 58:
4149
+ case 59:
4149
4150
  if (missingDatabases.length > 0 && !update) {
4150
4151
  console.error('Missing databases found but update is not enabled. Please enable update to create missing databases.');
4151
4152
  console.error('Please run the command again with the --update flag to create missing databases.');
@@ -4154,87 +4155,87 @@ var compareAllDatabases = /*#__PURE__*/function () {
4154
4155
  } else {
4155
4156
  console.log('All expected databases exist.');
4156
4157
  }
4157
- case 59:
4158
+ case 60:
4158
4159
  _iterator3 = _createForOfIteratorHelper(expectedDatabases);
4159
- _context.prev = 60;
4160
+ _context.prev = 61;
4160
4161
  _iterator3.s();
4161
- case 62:
4162
+ case 63:
4162
4163
  if ((_step3 = _iterator3.n()).done) {
4163
- _context.next = 100;
4164
+ _context.next = 101;
4164
4165
  break;
4165
4166
  }
4166
4167
  _database2 = _step3.value;
4167
4168
  if (!(options && options.database && options.database !== _database2)) {
4168
- _context.next = 66;
4169
+ _context.next = 67;
4169
4170
  break;
4170
4171
  }
4171
- return _context.abrupt("continue", 98);
4172
- case 66:
4172
+ return _context.abrupt("continue", 99);
4173
+ case 67:
4173
4174
  if (!missingDatabases.includes(_database2)) {
4174
- _context.next = 69;
4175
+ _context.next = 70;
4175
4176
  break;
4176
4177
  }
4177
4178
  console.log('Skipping database', _database2, 'because it is missing');
4178
- return _context.abrupt("continue", 98);
4179
- case 69:
4179
+ return _context.abrupt("continue", 99);
4180
+ case 70:
4180
4181
  filePath = path.join(inputDir, _database2, "".concat(_database2, ".json"));
4181
- _context.prev = 70;
4182
- _context.next = 73;
4182
+ _context.prev = 71;
4183
+ _context.next = 74;
4183
4184
  return fs.readFile(filePath, 'utf-8');
4184
- case 73:
4185
+ case 74:
4185
4186
  fileContent = _context.sent;
4186
4187
  expectedStructure = JSON.parse(fileContent);
4187
4188
  console.log('Getting database structure for', _database2);
4188
- _context.next = 78;
4189
+ _context.next = 79;
4189
4190
  return getDatabaseStructure(connection, _database2, command, options);
4190
- case 78:
4191
+ case 79:
4191
4192
  currentStructure = _context.sent;
4192
4193
  console.log('Database structure for', _database2, 'obtained');
4193
4194
  differences = findDifferences(expectedStructure, currentStructure);
4194
4195
  console.log('Differences for', _database2, 'obtained');
4195
4196
  if (update) {
4196
- _context.next = 87;
4197
+ _context.next = 88;
4197
4198
  break;
4198
4199
  }
4199
4200
  console.log('Logging differences for', _database2);
4200
4201
  logDifferences(differences, _database2, true);
4201
- _context.next = 92;
4202
+ _context.next = 93;
4202
4203
  break;
4203
- case 87:
4204
+ case 88:
4204
4205
  console.log('Logging differences for', _database2);
4205
4206
  logDifferences(differences, _database2, false);
4206
4207
  console.log('Applying differences for', _database2);
4207
- _context.next = 92;
4208
+ _context.next = 93;
4208
4209
  return applyDifferences(connection, _database2, differences);
4209
- case 92:
4210
+ case 93:
4210
4211
  allDifferences[_database2] = differences;
4211
- _context.next = 98;
4212
+ _context.next = 99;
4212
4213
  break;
4213
- case 95:
4214
- _context.prev = 95;
4215
- _context.t2 = _context["catch"](70);
4214
+ case 96:
4215
+ _context.prev = 96;
4216
+ _context.t2 = _context["catch"](71);
4216
4217
  console.error("Error processing database ".concat(_database2, ":"), _context.t2.message);
4217
- case 98:
4218
- _context.next = 62;
4218
+ case 99:
4219
+ _context.next = 63;
4219
4220
  break;
4220
- case 100:
4221
- _context.next = 105;
4221
+ case 101:
4222
+ _context.next = 106;
4222
4223
  break;
4223
- case 102:
4224
- _context.prev = 102;
4225
- _context.t3 = _context["catch"](60);
4224
+ case 103:
4225
+ _context.prev = 103;
4226
+ _context.t3 = _context["catch"](61);
4226
4227
  _iterator3.e(_context.t3);
4227
- case 105:
4228
- _context.prev = 105;
4228
+ case 106:
4229
+ _context.prev = 106;
4229
4230
  _iterator3.f();
4230
- return _context.finish(105);
4231
- case 108:
4232
- return _context.abrupt("return", allDifferences);
4231
+ return _context.finish(106);
4233
4232
  case 109:
4233
+ return _context.abrupt("return", allDifferences);
4234
+ case 110:
4234
4235
  case "end":
4235
4236
  return _context.stop();
4236
4237
  }
4237
- }, _callee, null, [[18, 29, 32, 35], [38, 50, 53, 56], [60, 102, 105, 108], [70, 95]]);
4238
+ }, _callee, null, [[19, 30, 33, 36], [39, 51, 54, 57], [61, 103, 106, 109], [71, 96]]);
4238
4239
  }));
4239
4240
  return function compareAllDatabases(_x, _x2) {
4240
4241
  return _ref.apply(this, arguments);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mysqlsyncr",
3
- "version": "1.0.80",
3
+ "version": "1.0.84",
4
4
  "description": "",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.esm.js",
package/src/compare.js CHANGED
@@ -15,7 +15,7 @@ export const compareAllDatabases = async (connection, inputDir, update = false,
15
15
  expectedDatabases = expectedDatabases.filter(file => file !== 'diffs.json');
16
16
  //filter out dumpInfo.json
17
17
  expectedDatabases = expectedDatabases.filter(file => file !== 'dumpInfo.json');
18
- // console.log('Expected databases from input directory:', expectedDatabases);
18
+ console.log('Expected databases from input directory:', expectedDatabases);
19
19
 
20
20
  // Check existing databases
21
21
  const existingDatabases = await getDatabases(connection);
@@ -15,12 +15,39 @@ export const findDifferences = (expected, current) => {
15
15
  if (!expected.tables) throw new Error('No tables found in expected');
16
16
  for (const [tableName, contents] of Object.entries(expected.tables)) {
17
17
  //check if craete table matches from json, if so, we dont need to compare indexes, triggers, or fields
18
+ const { columns, indexes, triggers, createSQL, name, engine, charset, collate } = contents;
19
+
18
20
 
19
21
  if (!current.tables[tableName]) {
20
22
  console.log('missing_table', contents);
21
23
  differences.push({ type: 'missing_table', tableName, createSQL: contents.createSQL });
22
24
  continue;
23
25
  }
26
+ try {
27
+ //verify triggers
28
+ logger('Verifying triggers for table', tableName);
29
+ for (const trigger of triggers) {
30
+ const currentTrigger = current.tables[tableName].triggers.find(t => t.Name === trigger.Name);
31
+ if (!currentTrigger) {
32
+ logger('Missing trigger', trigger);
33
+ differences.push({ type: 'missing_trigger', tableName, trigger });
34
+ } else {
35
+ // Compare additional properties if needed
36
+ if (currentTrigger.Event !== trigger.Event || currentTrigger.Statement !== trigger.Statement) {
37
+ logger('Mismatched trigger', { expected: trigger, current: currentTrigger });
38
+ differences.push({ type: 'mismatched_trigger', tableName, trigger });
39
+ }
40
+ }
41
+ }
42
+ for (const trigger of current.tables[tableName].triggers) {
43
+ if (!triggers.some(t => t.Name === trigger.Name)) {
44
+ logger('Extra trigger', trigger);
45
+ differences.push({ type: 'extra_trigger', tableName, trigger });
46
+ }
47
+ }
48
+ } catch (e) {
49
+ console.error(`Error verifying triggers for table ${tableName}`, e);
50
+ }
24
51
 
25
52
  const createTableSql = current.tables[tableName].createSQL;
26
53
  if (createTableSql === contents.createSQL) {
@@ -31,7 +58,6 @@ export const findDifferences = (expected, current) => {
31
58
  logger(createTableSql);
32
59
  logger(contents.createSQL);
33
60
  }
34
- const { columns, indexes, triggers, createSQL, name, engine, charset, collate } = contents;
35
61
 
36
62
 
37
63
  const currentFieldNames = current.tables[tableName].columns.map(f => f.Field);
@@ -70,11 +96,11 @@ export const findDifferences = (expected, current) => {
70
96
  differences.push({ type: 'mismatched_field', info: "Default", tableName, field, currentField });
71
97
  }
72
98
  if (field.Type !== currentField.Type) {
73
- if(field.Type == 'int' && currentField.Type.startsWith('int(')) continue; // int(11) is the default for int and used on older versions of mysql
74
- if(field.Type == 'smallint' && currentField.Type.startsWith('smallint(')) continue; // smallint(6) is the default for smallint and used on older versions of mysql
75
- if(field.Type == 'tinyint' && currentField.Type.startsWith('tinyint(')) continue; // tinyint(1) is the default for tinyint and used on older versions of mysql
76
- if(field.Type == 'varchar' && currentField.Type.startsWith('varchar(')) continue; // varchar(255) is the default for varchar and used on older versions of mysql
77
- if(field.Type == 'bigint' && currentField.Type.startsWith('bigint(')) continue; // bigint(20) is the default for bigint and used on older versions of mysql
99
+ if (field.Type == 'int' && currentField.Type.startsWith('int(')) continue; // int(11) is the default for int and used on older versions of mysql
100
+ if (field.Type == 'smallint' && currentField.Type.startsWith('smallint(')) continue; // smallint(6) is the default for smallint and used on older versions of mysql
101
+ if (field.Type == 'tinyint' && currentField.Type.startsWith('tinyint(')) continue; // tinyint(1) is the default for tinyint and used on older versions of mysql
102
+ if (field.Type == 'varchar' && currentField.Type.startsWith('varchar(')) continue; // varchar(255) is the default for varchar and used on older versions of mysql
103
+ if (field.Type == 'bigint' && currentField.Type.startsWith('bigint(')) continue; // bigint(20) is the default for bigint and used on older versions of mysql
78
104
  differences.push({ type: 'mismatched_field', info: "Type", tableName, field, currentField });
79
105
  }
80
106
  }
@@ -112,27 +138,7 @@ export const findDifferences = (expected, current) => {
112
138
  }
113
139
  }
114
140
 
115
- //verify triggers
116
- logger('Verifying triggers for table', tableName);
117
- for (const trigger of triggers) {
118
- const currentTrigger = current.tables[tableName].triggers.find(t => t.Name === trigger.Name);
119
- if (!currentTrigger) {
120
- logger('Missing trigger', trigger);
121
- differences.push({ type: 'missing_trigger', tableName, trigger });
122
- } else {
123
- // Compare additional properties if needed
124
- if (currentTrigger.Event !== trigger.Event || currentTrigger.Statement !== trigger.Statement) {
125
- logger('Mismatched trigger', { expected: trigger, current: currentTrigger });
126
- differences.push({ type: 'mismatched_trigger', tableName, trigger });
127
- }
128
- }
129
- }
130
- for (const trigger of current.tables[tableName].triggers) {
131
- if (!triggers.some(t => t.Name === trigger.Name)) {
132
- logger('Extra trigger', trigger);
133
- differences.push({ type: 'extra_trigger', tableName, trigger });
134
- }
135
- }
141
+
136
142
  }
137
143
 
138
144
 
package/src/dump.js CHANGED
@@ -1,4 +1,3 @@
1
- import { createRequire } from 'module';
2
1
  import fs from 'fs/promises';
3
2
  import path from 'path';
4
3
  import { getDatabases, getDatabaseStructure } from './getters.js';