@mikro-orm/knex 6.2.9-dev.17 → 6.2.9-dev.18

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mikro-orm/knex",
3
- "version": "6.2.9-dev.17",
3
+ "version": "6.2.9-dev.18",
4
4
  "description": "TypeScript ORM for Node.js based on Data Mapper, Unit of Work and Identity Map patterns. Supports MongoDB, MySQL, PostgreSQL and SQLite databases as well as usage with vanilla JavaScript.",
5
5
  "main": "index.js",
6
6
  "module": "index.mjs",
@@ -66,6 +66,6 @@
66
66
  "@mikro-orm/core": "^6.2.8"
67
67
  },
68
68
  "peerDependencies": {
69
- "@mikro-orm/core": "6.2.9-dev.17"
69
+ "@mikro-orm/core": "6.2.9-dev.18"
70
70
  }
71
71
  }
@@ -158,6 +158,7 @@ class DatabaseTable {
158
158
  constraint: !prop.fieldNames.some((d) => d.includes('.')),
159
159
  primary: false,
160
160
  unique: true,
161
+ deferMode: prop.deferMode,
161
162
  });
162
163
  }
163
164
  }
@@ -484,7 +484,7 @@ class SchemaComparator {
484
484
  // index that has no constraints.
485
485
  return true;
486
486
  }
487
- return index1.primary === index2.primary && index1.unique === index2.unique;
487
+ return index1.primary === index2.primary && index1.unique === index2.unique && index1.deferMode === index2.deferMode;
488
488
  }
489
489
  diffExpression(expr1, expr2) {
490
490
  // expressions like check constraints might be normalized by the driver,
@@ -359,11 +359,14 @@ class SqlSchemaGenerator extends core_1.AbstractSchemaGenerator {
359
359
  const foreignKey = Object.values(diff.addedForeignKeys).find(fk => fk.columnNames.length === 1 && fk.columnNames[0] === column.name);
360
360
  if (foreignKey && this.options.createForeignKeyConstraints) {
361
361
  delete diff.addedForeignKeys[foreignKey.constraintName];
362
- col.references(foreignKey.referencedColumnNames[0])
362
+ const builder = col.references(foreignKey.referencedColumnNames[0])
363
363
  .inTable(this.getReferencedTableName(foreignKey.referencedTableName))
364
364
  .withKeyName(foreignKey.constraintName)
365
365
  .onUpdate(foreignKey.updateRule)
366
366
  .onDelete(foreignKey.deleteRule);
367
+ if (foreignKey.deferMode) {
368
+ builder.deferrable(foreignKey.deferMode);
369
+ }
367
370
  }
368
371
  }
369
372
  for (const { column, changedProperties, fromColumn } of Object.values(diff.changedColumns)) {
@@ -527,7 +530,7 @@ class SqlSchemaGenerator extends core_1.AbstractSchemaGenerator {
527
530
  table.index(columns.map(column => this.knex.raw(column)), index.keyName, { indexType: 'unique' });
528
531
  }
529
532
  else {
530
- table.unique(index.columnNames, { indexName: index.keyName });
533
+ table.unique(index.columnNames, { indexName: index.keyName, deferrable: index.deferMode });
531
534
  }
532
535
  }
533
536
  else if (index.expression) {
package/typings.d.ts CHANGED
@@ -73,6 +73,7 @@ export interface IndexDef {
73
73
  storageEngineIndexType?: 'hash' | 'btree';
74
74
  predicate?: Knex.QueryBuilder;
75
75
  }>;
76
+ deferMode?: DeferMode;
76
77
  }
77
78
  export interface CheckDef<T = unknown> {
78
79
  name: string;