@mikro-orm/knex 6.0.0-dev.2 → 6.0.0-dev.5
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/AbstractSqlConnection.d.ts → AbstractSqlConnection.d.ts} +0 -0
- package/{dist/AbstractSqlConnection.js → AbstractSqlConnection.js} +5 -0
- package/AbstractSqlDriver.d.ts +66 -0
- package/{dist/AbstractSqlDriver.js → AbstractSqlDriver.js} +218 -70
- package/{dist/AbstractSqlPlatform.d.ts → AbstractSqlPlatform.d.ts} +6 -4
- package/{dist/AbstractSqlPlatform.js → AbstractSqlPlatform.js} +18 -7
- package/{dist/MonkeyPatchable.d.ts → MonkeyPatchable.d.ts} +0 -0
- package/{dist/MonkeyPatchable.js → MonkeyPatchable.js} +0 -0
- package/{dist/README.md → README.md} +2 -2
- package/{dist/SqlEntityManager.d.ts → SqlEntityManager.d.ts} +5 -5
- package/{dist/SqlEntityManager.js → SqlEntityManager.js} +0 -1
- package/{dist/SqlEntityRepository.d.ts → SqlEntityRepository.d.ts} +3 -3
- package/{dist/SqlEntityRepository.js → SqlEntityRepository.js} +1 -1
- package/{dist/index.d.ts → index.d.ts} +0 -0
- package/{dist/index.js → index.js} +5 -1
- package/{dist/index.mjs → index.mjs} +0 -0
- package/package.json +27 -22
- package/{dist/query → query}/ArrayCriteriaNode.d.ts +0 -0
- package/{dist/query → query}/ArrayCriteriaNode.js +0 -0
- package/{dist/query → query}/CriteriaNode.d.ts +0 -0
- package/{dist/query → query}/CriteriaNode.js +7 -4
- package/{dist/query → query}/CriteriaNodeFactory.d.ts +0 -0
- package/{dist/query → query}/CriteriaNodeFactory.js +0 -0
- package/{dist/query → query}/ObjectCriteriaNode.d.ts +0 -0
- package/{dist/query → query}/ObjectCriteriaNode.js +14 -1
- package/{dist/query → query}/QueryBuilder.d.ts +58 -24
- package/{dist/query → query}/QueryBuilder.js +285 -84
- package/{dist/query → query}/QueryBuilderHelper.d.ts +19 -11
- package/{dist/query → query}/QueryBuilderHelper.js +206 -108
- package/{dist/query → query}/ScalarCriteriaNode.d.ts +0 -0
- package/{dist/query → query}/ScalarCriteriaNode.js +0 -0
- package/{dist/query → query}/enums.d.ts +0 -0
- package/{dist/query → query}/enums.js +0 -0
- package/{dist/query → query}/index.d.ts +0 -0
- package/{dist/query → query}/index.js +5 -1
- package/{dist/schema → schema}/DatabaseSchema.d.ts +1 -1
- package/{dist/schema → schema}/DatabaseSchema.js +8 -16
- package/{dist/schema → schema}/DatabaseTable.d.ts +1 -1
- package/{dist/schema → schema}/DatabaseTable.js +2 -1
- package/{dist/schema → schema}/SchemaComparator.d.ts +3 -1
- package/{dist/schema → schema}/SchemaComparator.js +58 -10
- package/{dist/schema → schema}/SchemaGenerator.d.ts +10 -8
- package/{dist/schema → schema}/SchemaGenerator.js +81 -28
- package/{dist/schema → schema}/SchemaHelper.d.ts +9 -4
- package/{dist/schema → schema}/SchemaHelper.js +46 -8
- package/{dist/schema → schema}/index.d.ts +0 -0
- package/{dist/schema → schema}/index.js +5 -1
- package/{dist/typings.d.ts → typings.d.ts} +7 -3
- package/{dist/typings.js → typings.js} +0 -0
- package/CHANGELOG.md +0 -661
- package/dist/AbstractSqlDriver.d.ts +0 -55
- package/dist/LICENSE +0 -21
- package/dist/package.json +0 -99
|
@@ -24,25 +24,51 @@ class SchemaHelper {
|
|
|
24
24
|
supportsSchemaConstraints() {
|
|
25
25
|
return true;
|
|
26
26
|
}
|
|
27
|
-
async getPrimaryKeys(connection, indexes, tableName, schemaName) {
|
|
28
|
-
const
|
|
29
|
-
return
|
|
27
|
+
async getPrimaryKeys(connection, indexes = [], tableName, schemaName) {
|
|
28
|
+
const pks = indexes.filter(i => i.primary).map(pk => pk.columnNames);
|
|
29
|
+
return core_1.Utils.flatten(pks);
|
|
30
30
|
}
|
|
31
31
|
async getForeignKeys(connection, tableName, schemaName) {
|
|
32
32
|
const fks = await connection.execute(this.getForeignKeysSQL(tableName, schemaName));
|
|
33
33
|
return this.mapForeignKeys(fks, tableName, schemaName);
|
|
34
34
|
}
|
|
35
|
+
getTableKey(t) {
|
|
36
|
+
const unquote = (str) => str.replace(/['"`]/g, '');
|
|
37
|
+
const parts = t.table_name.split('.');
|
|
38
|
+
if (parts.length > 1) {
|
|
39
|
+
return `${unquote(parts[0])}.${unquote(parts[1])}`;
|
|
40
|
+
}
|
|
41
|
+
if (t.schema_name) {
|
|
42
|
+
return `${unquote(t.schema_name)}.${unquote(t.table_name)}`;
|
|
43
|
+
}
|
|
44
|
+
return unquote(t.table_name);
|
|
45
|
+
}
|
|
35
46
|
async getEnumDefinitions(connection, checks, tableName, schemaName) {
|
|
36
47
|
return {};
|
|
37
48
|
}
|
|
49
|
+
async loadInformationSchema(schema, connection, tables) {
|
|
50
|
+
for (const t of tables) {
|
|
51
|
+
const table = schema.addTable(t.table_name, t.schema_name);
|
|
52
|
+
table.comment = t.table_comment;
|
|
53
|
+
const cols = await this.getColumns(connection, table.name, table.schema);
|
|
54
|
+
const indexes = await this.getIndexes(connection, table.name, table.schema);
|
|
55
|
+
const checks = await this.getChecks(connection, table.name, table.schema, cols);
|
|
56
|
+
const pks = await this.getPrimaryKeys(connection, indexes, table.name, table.schema);
|
|
57
|
+
const fks = await this.getForeignKeys(connection, table.name, table.schema);
|
|
58
|
+
const enums = await this.getEnumDefinitions(connection, checks, table.name, table.schema);
|
|
59
|
+
table.init(cols, indexes, checks, pks, fks, enums);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
38
62
|
getListTablesSQL(schemaName) {
|
|
39
63
|
throw new Error('Not supported by given driver');
|
|
40
64
|
}
|
|
41
|
-
getRenameColumnSQL(tableName, oldColumnName, to) {
|
|
65
|
+
getRenameColumnSQL(tableName, oldColumnName, to, schemaName) {
|
|
42
66
|
tableName = this.platform.quoteIdentifier(tableName);
|
|
43
67
|
oldColumnName = this.platform.quoteIdentifier(oldColumnName);
|
|
44
68
|
const columnName = this.platform.quoteIdentifier(to.name);
|
|
45
|
-
|
|
69
|
+
const schemaReference = (schemaName !== undefined && schemaName !== 'public') ? ('"' + schemaName + '".') : '';
|
|
70
|
+
const tableReference = schemaReference + tableName;
|
|
71
|
+
return `alter table ${tableReference} rename column ${oldColumnName} to ${columnName}`;
|
|
46
72
|
}
|
|
47
73
|
getCreateIndexSQL(tableName, index) {
|
|
48
74
|
/* istanbul ignore if */
|
|
@@ -59,13 +85,22 @@ class SchemaHelper {
|
|
|
59
85
|
getRenameIndexSQL(tableName, index, oldIndexName) {
|
|
60
86
|
return [this.getDropIndexSQL(tableName, { ...index, keyName: oldIndexName }), this.getCreateIndexSQL(tableName, index)].join(';\n');
|
|
61
87
|
}
|
|
88
|
+
hasNonDefaultPrimaryKeyName(table) {
|
|
89
|
+
const pkIndex = table.getPrimaryKey();
|
|
90
|
+
if (!pkIndex || !this.platform.supportsCustomPrimaryKeyNames()) {
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
93
|
+
const defaultName = this.platform.getDefaultPrimaryName(table.name, pkIndex.columnNames);
|
|
94
|
+
return pkIndex?.keyName !== defaultName;
|
|
95
|
+
}
|
|
62
96
|
createTableColumn(table, column, fromTable, changedProperties) {
|
|
63
97
|
const compositePK = fromTable.getPrimaryKey()?.composite;
|
|
64
98
|
if (column.autoincrement && !compositePK && (!changedProperties || changedProperties.has('autoincrement') || changedProperties.has('type'))) {
|
|
99
|
+
const primaryKey = !changedProperties && !this.hasNonDefaultPrimaryKeyName(fromTable);
|
|
65
100
|
if (column.mappedType instanceof core_1.BigIntType) {
|
|
66
|
-
return table.bigIncrements(column.name, { primaryKey
|
|
101
|
+
return table.bigIncrements(column.name, { primaryKey });
|
|
67
102
|
}
|
|
68
|
-
return table.increments(column.name, { primaryKey
|
|
103
|
+
return table.increments(column.name, { primaryKey });
|
|
69
104
|
}
|
|
70
105
|
if (column.mappedType instanceof core_1.EnumType && column.enumItems?.every(item => core_1.Utils.isString(item))) {
|
|
71
106
|
return table.enum(column.name, column.enumItems);
|
|
@@ -100,13 +135,16 @@ class SchemaHelper {
|
|
|
100
135
|
getChangeColumnCommentSQL(tableName, to) {
|
|
101
136
|
return '';
|
|
102
137
|
}
|
|
138
|
+
async getNamespaces(connection) {
|
|
139
|
+
return [];
|
|
140
|
+
}
|
|
103
141
|
async getColumns(connection, tableName, schemaName) {
|
|
104
142
|
throw new Error('Not supported by given driver');
|
|
105
143
|
}
|
|
106
144
|
async getIndexes(connection, tableName, schemaName) {
|
|
107
145
|
throw new Error('Not supported by given driver');
|
|
108
146
|
}
|
|
109
|
-
async getChecks(connection, tableName, schemaName) {
|
|
147
|
+
async getChecks(connection, tableName, schemaName, columns) {
|
|
110
148
|
throw new Error('Not supported by given driver');
|
|
111
149
|
}
|
|
112
150
|
async mapIndexes(indexes) {
|
|
File without changes
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -7,10 +7,11 @@ export interface Table {
|
|
|
7
7
|
schema_name?: string;
|
|
8
8
|
table_comment?: string;
|
|
9
9
|
}
|
|
10
|
-
export
|
|
10
|
+
export type KnexStringRef = Knex.Ref<string, {
|
|
11
11
|
[alias: string]: string;
|
|
12
12
|
}>;
|
|
13
|
-
|
|
13
|
+
type AnyString = string & {};
|
|
14
|
+
export type Field<T> = AnyString | keyof T | KnexStringRef | Knex.QueryBuilder;
|
|
14
15
|
export interface JoinOptions {
|
|
15
16
|
table: string;
|
|
16
17
|
schema?: string;
|
|
@@ -42,6 +43,7 @@ export interface Column {
|
|
|
42
43
|
unique?: boolean;
|
|
43
44
|
/** mysql only */
|
|
44
45
|
extra?: string;
|
|
46
|
+
ignoreSchemaChanges?: ('type' | 'extra')[];
|
|
45
47
|
}
|
|
46
48
|
export interface ForeignKey {
|
|
47
49
|
columnNames: string[];
|
|
@@ -81,6 +83,7 @@ export interface TableDifference {
|
|
|
81
83
|
name: string;
|
|
82
84
|
changedComment?: string;
|
|
83
85
|
fromTable: DatabaseTable;
|
|
86
|
+
toTable: DatabaseTable;
|
|
84
87
|
addedColumns: Dictionary<Column>;
|
|
85
88
|
changedColumns: Dictionary<ColumnDifference>;
|
|
86
89
|
removedColumns: Dictionary<Column>;
|
|
@@ -107,7 +110,7 @@ export interface SchemaDifference {
|
|
|
107
110
|
}
|
|
108
111
|
export interface IQueryBuilder<T> {
|
|
109
112
|
readonly alias: string;
|
|
110
|
-
readonly type
|
|
113
|
+
readonly type?: QueryType;
|
|
111
114
|
_fields?: Field<T>[];
|
|
112
115
|
select(fields: Field<T> | Field<T>[], distinct?: boolean): this;
|
|
113
116
|
addSelect(fields: string | string[]): this;
|
|
@@ -148,3 +151,4 @@ export interface ICriteriaNode {
|
|
|
148
151
|
getPath(addIndex?: boolean): string;
|
|
149
152
|
getPivotPath(path: string): string;
|
|
150
153
|
}
|
|
154
|
+
export {};
|
|
File without changes
|