@axiosleo/orm-mysql 0.13.1 → 0.13.2
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/bin/orm-mysql.js +1 -1
- package/package.json +1 -1
- package/src/builder.js +24 -19
- package/src/migration.js +1 -1
package/bin/orm-mysql.js
CHANGED
package/package.json
CHANGED
package/src/builder.js
CHANGED
|
@@ -583,25 +583,27 @@ class ManageSQLBuilder extends Builder {
|
|
|
583
583
|
}
|
|
584
584
|
|
|
585
585
|
createForeignKey(options) {
|
|
586
|
-
|
|
587
|
-
|
|
586
|
+
if (options.references) {
|
|
587
|
+
options.references.onDelete = options.references.onDelete ? options.references.onDelete.toUpperCase() : 'NO ACTION';
|
|
588
|
+
options.references.onUpdate = options.references.onUpdate ? options.references.onUpdate.toUpperCase() : 'NO ACTION';
|
|
589
|
+
}
|
|
588
590
|
_validate(options, {
|
|
589
591
|
name: 'required|string',
|
|
590
592
|
table: 'required|string',
|
|
591
593
|
column: 'required|string',
|
|
592
|
-
'
|
|
593
|
-
'
|
|
594
|
-
'
|
|
595
|
-
'
|
|
594
|
+
'references.tableName': 'required|string',
|
|
595
|
+
'references.columnName': 'required|string',
|
|
596
|
+
'references.onUpdate': [{ in: ['RESTRICT', 'CASCADE', 'SET NULL', 'NO ACTION'] }],
|
|
597
|
+
'references.onDelete': [{ in: ['RESTRICT', 'CASCADE', 'SET NULL', 'NO ACTION'] }]
|
|
596
598
|
});
|
|
597
599
|
return _render('ALTER TABLE `${table_name}` ADD CONSTRAINT `${name}` FOREIGN KEY (`${column_name}`) REFERENCES `${foreign_table}` (`${foreign_column}`) ON DELETE ${on_delete} ON UPDATE ${on_update}', {
|
|
598
600
|
table_name: options.tableName,
|
|
599
601
|
name: options.name,
|
|
600
602
|
column_name: options.columnName,
|
|
601
|
-
foreign_table: options.
|
|
602
|
-
foreign_column: options.
|
|
603
|
-
on_delete: options.
|
|
604
|
-
on_update: options.
|
|
603
|
+
foreign_table: options.references.tableName,
|
|
604
|
+
foreign_column: options.references.columnName,
|
|
605
|
+
on_delete: options.references.onDelete || 'NO ACTION',
|
|
606
|
+
on_update: options.references.onUpdate || 'NO ACTION',
|
|
605
607
|
});
|
|
606
608
|
}
|
|
607
609
|
|
|
@@ -657,11 +659,14 @@ class ManageSQLBuilder extends Builder {
|
|
|
657
659
|
} else if (column.uniqIndex === true) {
|
|
658
660
|
indexColumns.push(column);
|
|
659
661
|
}
|
|
660
|
-
if (column.reference) {
|
|
661
|
-
column.
|
|
662
|
-
|
|
662
|
+
if (column.reference && !column.references) {
|
|
663
|
+
column.references = column.reference;
|
|
664
|
+
}
|
|
665
|
+
if (column.references) {
|
|
666
|
+
column.references.onDelete = column.references.onDelete ? column.references.onDelete.toUpperCase() : 'NO ACTION';
|
|
667
|
+
column.references.onUpdate = column.references.onUpdate ? column.references.onUpdate.toUpperCase() : 'NO ACTION';
|
|
663
668
|
|
|
664
|
-
_validate(column.
|
|
669
|
+
_validate(column.references, {
|
|
665
670
|
table: 'required|string',
|
|
666
671
|
column: 'required|string',
|
|
667
672
|
onDelete: [{ in: ['RESTRICT', 'CASCADE', 'SET NULL', 'NO ACTION'] }],
|
|
@@ -671,11 +676,11 @@ class ManageSQLBuilder extends Builder {
|
|
|
671
676
|
name: 'fk_' + table + '_' + column.name,
|
|
672
677
|
table,
|
|
673
678
|
column: column.name,
|
|
674
|
-
|
|
675
|
-
tableName: column.
|
|
676
|
-
columnName: column.
|
|
677
|
-
onDelete: column.
|
|
678
|
-
onUpdate: column.
|
|
679
|
+
references: {
|
|
680
|
+
tableName: column.references.table,
|
|
681
|
+
columnName: column.references.column,
|
|
682
|
+
onDelete: column.references.onDelete,
|
|
683
|
+
onUpdate: column.references.onUpdate
|
|
679
684
|
}
|
|
680
685
|
});
|
|
681
686
|
}
|
package/src/migration.js
CHANGED
|
@@ -233,7 +233,7 @@ function _initMigration(file, queries = {}) {
|
|
|
233
233
|
name: options.foreignKey ? options.foreignKey : 'fk_' + table + '_' + options.columnName,
|
|
234
234
|
table: table,
|
|
235
235
|
column: options.columnName,
|
|
236
|
-
|
|
236
|
+
references: options.references || options.reference // 兼容性处理
|
|
237
237
|
});
|
|
238
238
|
const builder = new ManageSQLBuilder(options);
|
|
239
239
|
queries[file].push({ sql: builder.sql, values: builder.values });
|