typeorm 0.2.38-dev.e9366b3 → 0.2.38
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 +1 -1
- package/browser/query-runner/BaseQueryRunner.d.ts +2 -1
- package/browser/query-runner/BaseQueryRunner.js +47 -25
- package/browser/query-runner/BaseQueryRunner.js.map +1 -1
- package/browser/schema-builder/RdbmsSchemaBuilder.d.ts +2 -0
- package/browser/schema-builder/RdbmsSchemaBuilder.js +26 -43
- package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
- package/browser/util/StringUtils.js +1 -1
- package/browser/util/StringUtils.js.map +1 -1
- package/cli.js +0 -0
- package/commands/SchemaLogCommand.js +2 -2
- package/commands/SchemaLogCommand.js.map +1 -1
- package/commands/SchemaSyncCommand.js +1 -1
- package/commands/SchemaSyncCommand.js.map +1 -1
- package/package.json +239 -1
- package/query-runner/BaseQueryRunner.d.ts +2 -1
- package/query-runner/BaseQueryRunner.js +47 -25
- package/query-runner/BaseQueryRunner.js.map +1 -1
- package/schema-builder/RdbmsSchemaBuilder.d.ts +2 -0
- package/schema-builder/RdbmsSchemaBuilder.js +26 -43
- package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
- package/util/StringUtils.js +1 -1
- package/util/StringUtils.js.map +1 -1
package/package.json
CHANGED
|
@@ -1 +1,239 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"name": "typeorm",
|
|
3
|
+
"private": false,
|
|
4
|
+
"version": "0.2.38",
|
|
5
|
+
"description": "Data-Mapper ORM for TypeScript, ES7, ES6, ES5. Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, MongoDB databases.",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"readmeFilename": "README.md",
|
|
8
|
+
"author": {
|
|
9
|
+
"name": "Umed Khudoiberdiev",
|
|
10
|
+
"email": "pleerock.me@gmail.com"
|
|
11
|
+
},
|
|
12
|
+
"main": "./index.js",
|
|
13
|
+
"browser": {
|
|
14
|
+
"./browser/driver/aurora-data-api/AuroraDataApiDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js",
|
|
15
|
+
"./browser/driver/cockroachdb/CockroachDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js",
|
|
16
|
+
"./browser/driver/postgres/PostgresDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js",
|
|
17
|
+
"./browser/driver/oracle/OracleDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js",
|
|
18
|
+
"./browser/driver/sap/SapDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js",
|
|
19
|
+
"./browser/driver/mysql/MysqlDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js",
|
|
20
|
+
"./browser/driver/sqlserver/SqlServerDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js",
|
|
21
|
+
"./browser/driver/mongodb/MongoDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js",
|
|
22
|
+
"./browser/driver/mongodb/MongoQueryRunner.js": "./browser/platform/BrowserDisabledDriversDummy.js",
|
|
23
|
+
"./browser/entity-manager/MongoEntityManager.js": "./browser/platform/BrowserDisabledDriversDummy.js",
|
|
24
|
+
"./browser/repository/MongoRepository.js": "./browser/platform/BrowserDisabledDriversDummy.js",
|
|
25
|
+
"./browser/driver/sqlite/SqliteDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js",
|
|
26
|
+
"./browser/driver/better-sqlite3/BetterSqlite3Driver.js": "./browser/platform/BrowserDisabledDriversDummy.js",
|
|
27
|
+
"./browser/util/DirectoryExportedClassesLoader.js": "./browser/platform/BrowserDirectoryExportedClassesLoader.js",
|
|
28
|
+
"./browser/logger/FileLogger.js": "./browser/platform/BrowserFileLoggerDummy.js",
|
|
29
|
+
"./browser/connection/ConnectionOptionsReader.js": "./browser/platform/BrowserConnectionOptionsReaderDummy.js",
|
|
30
|
+
"./browser/connection/options-reader/ConnectionOptionsXmlReader.js": "./browser/platform/BrowserConnectionOptionsReaderDummy.js",
|
|
31
|
+
"./browser/connection/options-reader/ConnectionOptionsYmlReader.js": "./browser/platform/BrowserConnectionOptionsReaderDummy.js",
|
|
32
|
+
"./browser/platform/PlatformTools.js": "./browser/platform/BrowserPlatformTools.js",
|
|
33
|
+
"./index.js": "./browser/index.js"
|
|
34
|
+
},
|
|
35
|
+
"repository": {
|
|
36
|
+
"type": "git",
|
|
37
|
+
"url": "https://github.com/typeorm/typeorm.git"
|
|
38
|
+
},
|
|
39
|
+
"bugs": {
|
|
40
|
+
"url": "https://github.com/typeorm/typeorm/issues"
|
|
41
|
+
},
|
|
42
|
+
"tags": [
|
|
43
|
+
"orm",
|
|
44
|
+
"typescript",
|
|
45
|
+
"typescript-orm",
|
|
46
|
+
"mysql",
|
|
47
|
+
"mysql-orm",
|
|
48
|
+
"postgresql",
|
|
49
|
+
"postgresql-orm",
|
|
50
|
+
"mariadb",
|
|
51
|
+
"mariadb-orm",
|
|
52
|
+
"sqlite",
|
|
53
|
+
"sqlite-orm",
|
|
54
|
+
"sql-server",
|
|
55
|
+
"sql-server-orm",
|
|
56
|
+
"oracle",
|
|
57
|
+
"oracle-orm"
|
|
58
|
+
],
|
|
59
|
+
"devDependencies": {
|
|
60
|
+
"@types/app-root-path": "^1.2.4",
|
|
61
|
+
"@types/chai": "^4.2.15",
|
|
62
|
+
"@types/chai-as-promised": "^7.1.3",
|
|
63
|
+
"@types/debug": "^4.1.5",
|
|
64
|
+
"@types/dotenv": "^8.2.0",
|
|
65
|
+
"@types/js-yaml": "^4.0.0",
|
|
66
|
+
"@types/mkdirp": "^1.0.1",
|
|
67
|
+
"@types/mocha": "^8.2.1",
|
|
68
|
+
"@types/node": "^14.14.31",
|
|
69
|
+
"@types/rimraf": "^3.0.0",
|
|
70
|
+
"@types/sha.js": "^2.4.0",
|
|
71
|
+
"@types/sinon": "^9.0.10",
|
|
72
|
+
"@types/source-map-support": "^0.5.3",
|
|
73
|
+
"@types/xml2js": "^0.4.8",
|
|
74
|
+
"@types/yargs": "^17.0.2",
|
|
75
|
+
"@typescript-eslint/eslint-plugin": "^4.15.2",
|
|
76
|
+
"@typescript-eslint/parser": "^4.15.2",
|
|
77
|
+
"better-sqlite3": "^7.1.2",
|
|
78
|
+
"chai": "^4.3.0",
|
|
79
|
+
"chai-as-promised": "^7.1.1",
|
|
80
|
+
"class-transformer": "^0.4.0",
|
|
81
|
+
"conventional-changelog-angular": "^5.0.12",
|
|
82
|
+
"conventional-changelog-cli": "^2.1.1",
|
|
83
|
+
"del": "^6.0.0",
|
|
84
|
+
"eslint": "^7.20.0",
|
|
85
|
+
"gulp": "^4.0.2",
|
|
86
|
+
"gulp-eslint": "^6.0.0",
|
|
87
|
+
"gulp-istanbul": "^1.1.3",
|
|
88
|
+
"gulp-mocha": "^8.0.0",
|
|
89
|
+
"gulp-rename": "^2.0.0",
|
|
90
|
+
"gulp-replace": "^1.0.0",
|
|
91
|
+
"gulp-shell": "^0.8.0",
|
|
92
|
+
"gulp-sourcemaps": "^3.0.0",
|
|
93
|
+
"gulp-typescript": "^6.0.0-alpha.1",
|
|
94
|
+
"gulpclass": "^0.2.0",
|
|
95
|
+
"husky": "^5.1.1",
|
|
96
|
+
"lint-staged": "^10.5.4",
|
|
97
|
+
"mocha": "^8.3.0",
|
|
98
|
+
"mongodb": "^3.6.4",
|
|
99
|
+
"mssql": "^6.3.1",
|
|
100
|
+
"mysql": "^2.18.1",
|
|
101
|
+
"mysql2": "^2.2.5",
|
|
102
|
+
"oracledb": "^5.1.0",
|
|
103
|
+
"pg": "^8.5.1",
|
|
104
|
+
"pg-query-stream": "^4.0.0",
|
|
105
|
+
"redis": "^3.1.1",
|
|
106
|
+
"remap-istanbul": "^0.13.0",
|
|
107
|
+
"rimraf": "^3.0.2",
|
|
108
|
+
"sinon": "^9.2.4",
|
|
109
|
+
"sinon-chai": "^3.5.0",
|
|
110
|
+
"source-map-support": "^0.5.19",
|
|
111
|
+
"sql.js": "^1.4.0",
|
|
112
|
+
"sqlite3": "^5.0.2",
|
|
113
|
+
"ts-node": "^9.1.1",
|
|
114
|
+
"typeorm-aurora-data-api-driver": "^2.0.0",
|
|
115
|
+
"typescript": "^4.2.2"
|
|
116
|
+
},
|
|
117
|
+
"peerDependencies": {
|
|
118
|
+
"@sap/hana-client": "*",
|
|
119
|
+
"better-sqlite3": "*",
|
|
120
|
+
"hdb-pool": "*",
|
|
121
|
+
"ioredis": "*",
|
|
122
|
+
"mongodb": "^3.6.0",
|
|
123
|
+
"mssql": "*",
|
|
124
|
+
"mysql2": "*",
|
|
125
|
+
"oracledb": "*",
|
|
126
|
+
"pg": "*",
|
|
127
|
+
"pg-native": "*",
|
|
128
|
+
"pg-query-stream": "*",
|
|
129
|
+
"redis": "*",
|
|
130
|
+
"sql.js": "*",
|
|
131
|
+
"sqlite3": "*",
|
|
132
|
+
"typeorm-aurora-data-api-driver": "*"
|
|
133
|
+
},
|
|
134
|
+
"peerDependenciesMeta": {
|
|
135
|
+
"@sap/hana-client": {
|
|
136
|
+
"optional": true
|
|
137
|
+
},
|
|
138
|
+
"better-sqlite3": {
|
|
139
|
+
"optional": true
|
|
140
|
+
},
|
|
141
|
+
"hdb-pool": {
|
|
142
|
+
"optional": true
|
|
143
|
+
},
|
|
144
|
+
"ioredis": {
|
|
145
|
+
"optional": true
|
|
146
|
+
},
|
|
147
|
+
"mongodb": {
|
|
148
|
+
"optional": true
|
|
149
|
+
},
|
|
150
|
+
"mssql": {
|
|
151
|
+
"optional": true
|
|
152
|
+
},
|
|
153
|
+
"mysql2": {
|
|
154
|
+
"optional": true
|
|
155
|
+
},
|
|
156
|
+
"oracledb": {
|
|
157
|
+
"optional": true
|
|
158
|
+
},
|
|
159
|
+
"pg": {
|
|
160
|
+
"optional": true
|
|
161
|
+
},
|
|
162
|
+
"pg-native": {
|
|
163
|
+
"optional": true
|
|
164
|
+
},
|
|
165
|
+
"pg-query-stream": {
|
|
166
|
+
"optional": true
|
|
167
|
+
},
|
|
168
|
+
"redis": {
|
|
169
|
+
"optional": true
|
|
170
|
+
},
|
|
171
|
+
"sql.js": {
|
|
172
|
+
"optional": true
|
|
173
|
+
},
|
|
174
|
+
"sqlite3": {
|
|
175
|
+
"optional": true
|
|
176
|
+
},
|
|
177
|
+
"typeorm-aurora-data-api-driver": {
|
|
178
|
+
"optional": true
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
"dependencies": {
|
|
182
|
+
"@sqltools/formatter": "^1.2.2",
|
|
183
|
+
"app-root-path": "^3.0.0",
|
|
184
|
+
"buffer": "^6.0.3",
|
|
185
|
+
"chalk": "^4.1.0",
|
|
186
|
+
"cli-highlight": "^2.1.11",
|
|
187
|
+
"debug": "^4.3.1",
|
|
188
|
+
"dotenv": "^8.2.0",
|
|
189
|
+
"glob": "^7.1.6",
|
|
190
|
+
"js-yaml": "^4.0.0",
|
|
191
|
+
"mkdirp": "^1.0.4",
|
|
192
|
+
"reflect-metadata": "^0.1.13",
|
|
193
|
+
"sha.js": "^2.4.11",
|
|
194
|
+
"tslib": "^2.1.0",
|
|
195
|
+
"xml2js": "^0.4.23",
|
|
196
|
+
"yargonaut": "^1.1.4",
|
|
197
|
+
"yargs": "^17.0.1",
|
|
198
|
+
"zen-observable-ts": "^1.0.0"
|
|
199
|
+
},
|
|
200
|
+
"lint-staged": {
|
|
201
|
+
"*.ts": [
|
|
202
|
+
"eslint --fix",
|
|
203
|
+
"git add"
|
|
204
|
+
]
|
|
205
|
+
},
|
|
206
|
+
"scripts": {
|
|
207
|
+
"test": "rimraf ./build && tsc && mocha --file ./build/compiled/test/utils/test-setup.js --bail --recursive --timeout 60000 ./build/compiled/test",
|
|
208
|
+
"test-fast": "mocha --file ./build/compiled/test/utils/test-setup.js --bail --recursive --timeout 60000 ./build/compiled/test",
|
|
209
|
+
"compile": "rimraf ./build && tsc",
|
|
210
|
+
"watch": "./node_modules/.bin/tsc -w",
|
|
211
|
+
"package": "gulp package",
|
|
212
|
+
"lint": "eslint -c ./.eslintrc.js src/**/*.ts test/**/*.ts sample/**/*.ts",
|
|
213
|
+
"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 1"
|
|
214
|
+
},
|
|
215
|
+
"bin": {
|
|
216
|
+
"typeorm": "./cli.js"
|
|
217
|
+
},
|
|
218
|
+
"funding": "https://opencollective.com/typeorm",
|
|
219
|
+
"collective": {
|
|
220
|
+
"type": "opencollective",
|
|
221
|
+
"url": "https://opencollective.com/typeorm",
|
|
222
|
+
"logo": "https://opencollective.com/opencollective/logo.txt"
|
|
223
|
+
},
|
|
224
|
+
"nyc": {
|
|
225
|
+
"all": true,
|
|
226
|
+
"cache": false,
|
|
227
|
+
"exclude": [
|
|
228
|
+
"**/*.d.ts"
|
|
229
|
+
],
|
|
230
|
+
"extension": [
|
|
231
|
+
".ts"
|
|
232
|
+
],
|
|
233
|
+
"include": [
|
|
234
|
+
"build/compiled/src/**",
|
|
235
|
+
"src/**"
|
|
236
|
+
],
|
|
237
|
+
"reporter": "json"
|
|
238
|
+
}
|
|
239
|
+
}
|
|
@@ -62,6 +62,7 @@ export declare abstract class BaseQueryRunner {
|
|
|
62
62
|
* If replication is not setup its value is ignored.
|
|
63
63
|
*/
|
|
64
64
|
protected mode: ReplicationMode;
|
|
65
|
+
private cachedTablePaths;
|
|
65
66
|
/**
|
|
66
67
|
* Executes a given SQL query.
|
|
67
68
|
*/
|
|
@@ -125,7 +126,7 @@ export declare abstract class BaseQueryRunner {
|
|
|
125
126
|
* Replaces loaded table with given changed table.
|
|
126
127
|
*/
|
|
127
128
|
protected replaceCachedTable(table: Table, changedTable: Table): void;
|
|
128
|
-
protected getTablePath(target: EntityMetadata | Table | TableForeignKey | string): string;
|
|
129
|
+
protected getTablePath(target: EntityMetadata | Table | View | TableForeignKey | string): string;
|
|
129
130
|
protected getTypeormMetadataTableName(): string;
|
|
130
131
|
/**
|
|
131
132
|
* Checks if at least one of column properties was changed.
|
|
@@ -4,10 +4,7 @@ exports.BaseQueryRunner = void 0;
|
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var Query_1 = require("../driver/Query");
|
|
6
6
|
var SqlInMemory_1 = require("../driver/SqlInMemory");
|
|
7
|
-
var Table_1 = require("../schema-builder/table/Table");
|
|
8
7
|
var TypeORMError_1 = require("../error/TypeORMError");
|
|
9
|
-
var EntityMetadata_1 = require("../metadata/EntityMetadata");
|
|
10
|
-
var TableForeignKey_1 = require("../schema-builder/table/TableForeignKey");
|
|
11
8
|
var BaseQueryRunner = /** @class */ (function () {
|
|
12
9
|
function BaseQueryRunner() {
|
|
13
10
|
// -------------------------------------------------------------------------
|
|
@@ -43,6 +40,7 @@ var BaseQueryRunner = /** @class */ (function () {
|
|
|
43
40
|
* Sql-s stored if "sql in memory" mode is enabled.
|
|
44
41
|
*/
|
|
45
42
|
this.sqlInMemory = new SqlInMemory_1.SqlInMemory();
|
|
43
|
+
this.cachedTablePaths = {};
|
|
46
44
|
}
|
|
47
45
|
// -------------------------------------------------------------------------
|
|
48
46
|
// Public Methods
|
|
@@ -270,19 +268,32 @@ var BaseQueryRunner = /** @class */ (function () {
|
|
|
270
268
|
*/
|
|
271
269
|
BaseQueryRunner.prototype.getCachedTable = function (tableName) {
|
|
272
270
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
273
|
-
var table, foundTables;
|
|
271
|
+
var tablePath_1, table, foundTables, foundTablePath_1, cachedTable;
|
|
272
|
+
var _this = this;
|
|
274
273
|
return tslib_1.__generator(this, function (_a) {
|
|
275
274
|
switch (_a.label) {
|
|
276
275
|
case 0:
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
276
|
+
if (tableName in this.cachedTablePaths) {
|
|
277
|
+
tablePath_1 = this.cachedTablePaths[tableName];
|
|
278
|
+
table = this.loadedTables.find(function (table) { return _this.getTablePath(table) === tablePath_1; });
|
|
279
|
+
if (table) {
|
|
280
|
+
return [2 /*return*/, table];
|
|
281
|
+
}
|
|
282
|
+
}
|
|
280
283
|
return [4 /*yield*/, this.loadTables([tableName])];
|
|
281
284
|
case 1:
|
|
282
285
|
foundTables = _a.sent();
|
|
283
286
|
if (foundTables.length > 0) {
|
|
284
|
-
this.
|
|
285
|
-
|
|
287
|
+
foundTablePath_1 = this.getTablePath(foundTables[0]);
|
|
288
|
+
cachedTable = this.loadedTables.find(function (table) { return _this.getTablePath(table) === foundTablePath_1; });
|
|
289
|
+
if (!cachedTable) {
|
|
290
|
+
this.cachedTablePaths[tableName] = this.getTablePath(foundTables[0]);
|
|
291
|
+
this.loadedTables.push(foundTables[0]);
|
|
292
|
+
return [2 /*return*/, foundTables[0]];
|
|
293
|
+
}
|
|
294
|
+
else {
|
|
295
|
+
return [2 /*return*/, cachedTable];
|
|
296
|
+
}
|
|
286
297
|
}
|
|
287
298
|
else {
|
|
288
299
|
throw new TypeORMError_1.TypeORMError("Table \"" + tableName + "\" does not exist.");
|
|
@@ -296,7 +307,26 @@ var BaseQueryRunner = /** @class */ (function () {
|
|
|
296
307
|
* Replaces loaded table with given changed table.
|
|
297
308
|
*/
|
|
298
309
|
BaseQueryRunner.prototype.replaceCachedTable = function (table, changedTable) {
|
|
299
|
-
var
|
|
310
|
+
var e_3, _a;
|
|
311
|
+
var _this = this;
|
|
312
|
+
var oldTablePath = this.getTablePath(table);
|
|
313
|
+
var foundTable = this.loadedTables.find(function (loadedTable) { return _this.getTablePath(loadedTable) === oldTablePath; });
|
|
314
|
+
try {
|
|
315
|
+
// Clean up the lookup cache..
|
|
316
|
+
for (var _b = tslib_1.__values(Object.entries(this.cachedTablePaths)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
317
|
+
var _d = tslib_1.__read(_c.value, 2), key = _d[0], cachedPath = _d[1];
|
|
318
|
+
if (cachedPath === oldTablePath) {
|
|
319
|
+
this.cachedTablePaths[key] = this.getTablePath(changedTable);
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
324
|
+
finally {
|
|
325
|
+
try {
|
|
326
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
327
|
+
}
|
|
328
|
+
finally { if (e_3) throw e_3.error; }
|
|
329
|
+
}
|
|
300
330
|
if (foundTable) {
|
|
301
331
|
foundTable.database = changedTable.database;
|
|
302
332
|
foundTable.schema = changedTable.schema;
|
|
@@ -311,16 +341,8 @@ var BaseQueryRunner = /** @class */ (function () {
|
|
|
311
341
|
}
|
|
312
342
|
};
|
|
313
343
|
BaseQueryRunner.prototype.getTablePath = function (target) {
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
}
|
|
317
|
-
if (target instanceof TableForeignKey_1.TableForeignKey) {
|
|
318
|
-
return target.referencedTableName;
|
|
319
|
-
}
|
|
320
|
-
if (target instanceof EntityMetadata_1.EntityMetadata) {
|
|
321
|
-
return target.tablePath;
|
|
322
|
-
}
|
|
323
|
-
return target;
|
|
344
|
+
var parsed = this.connection.driver.parseTableName(target);
|
|
345
|
+
return this.connection.driver.buildTableName(parsed.tableName, parsed.schema, parsed.database);
|
|
324
346
|
};
|
|
325
347
|
BaseQueryRunner.prototype.getTypeormMetadataTableName = function () {
|
|
326
348
|
var options = this.connection.driver.options;
|
|
@@ -432,8 +454,8 @@ var BaseQueryRunner = /** @class */ (function () {
|
|
|
432
454
|
*/
|
|
433
455
|
BaseQueryRunner.prototype.executeQueries = function (upQueries, downQueries) {
|
|
434
456
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
435
|
-
var upQueries_1, upQueries_1_1, _a, query, parameters,
|
|
436
|
-
var _b, _c,
|
|
457
|
+
var upQueries_1, upQueries_1_1, _a, query, parameters, e_4_1;
|
|
458
|
+
var _b, _c, e_4, _d;
|
|
437
459
|
return tslib_1.__generator(this, function (_e) {
|
|
438
460
|
switch (_e.label) {
|
|
439
461
|
case 0:
|
|
@@ -463,14 +485,14 @@ var BaseQueryRunner = /** @class */ (function () {
|
|
|
463
485
|
return [3 /*break*/, 2];
|
|
464
486
|
case 5: return [3 /*break*/, 8];
|
|
465
487
|
case 6:
|
|
466
|
-
|
|
467
|
-
|
|
488
|
+
e_4_1 = _e.sent();
|
|
489
|
+
e_4 = { error: e_4_1 };
|
|
468
490
|
return [3 /*break*/, 8];
|
|
469
491
|
case 7:
|
|
470
492
|
try {
|
|
471
493
|
if (upQueries_1_1 && !upQueries_1_1.done && (_d = upQueries_1.return)) _d.call(upQueries_1);
|
|
472
494
|
}
|
|
473
|
-
finally { if (
|
|
495
|
+
finally { if (e_4) throw e_4.error; }
|
|
474
496
|
return [7 /*endfinally*/];
|
|
475
497
|
case 8: return [2 /*return*/];
|
|
476
498
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/query-runner/BaseQueryRunner.ts"],"names":[],"mappings":"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","file":"BaseQueryRunner.js","sourcesContent":["import {PostgresConnectionOptions} from \"../driver/postgres/PostgresConnectionOptions\";\nimport {Query} from \"../driver/Query\";\nimport {SqlInMemory} from \"../driver/SqlInMemory\";\nimport {SqlServerConnectionOptions} from \"../driver/sqlserver/SqlServerConnectionOptions\";\nimport {View} from \"../schema-builder/view/View\";\nimport {Connection} from \"../connection/Connection\";\nimport {Table} from \"../schema-builder/table/Table\";\nimport {EntityManager} from \"../entity-manager/EntityManager\";\nimport {TableColumn} from \"../schema-builder/table/TableColumn\";\nimport {Broadcaster} from \"../subscriber/Broadcaster\";\nimport {ReplicationMode} from \"../driver/types/ReplicationMode\";\nimport { TypeORMError } from \"../error/TypeORMError\";\nimport { EntityMetadata } from \"../metadata/EntityMetadata\";\nimport { TableForeignKey } from \"../schema-builder/table/TableForeignKey\";\n\nexport abstract class BaseQueryRunner {\n\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Connection used by this query runner.\n */\n connection: Connection;\n\n /**\n * Entity manager working only with current query runner.\n */\n manager: EntityManager;\n\n /**\n * Indicates if connection for this query runner is released.\n * Once its released, query runner cannot run queries anymore.\n */\n isReleased = false;\n\n /**\n * Indicates if transaction is in progress.\n */\n isTransactionActive = false;\n\n /**\n * Stores temporarily user data.\n * Useful for sharing data with subscribers.\n */\n data = {};\n\n /**\n * All synchronized tables in the database.\n */\n loadedTables: Table[] = [];\n\n /**\n * All synchronized views in the database.\n */\n loadedViews: View[] = [];\n\n /**\n * Broadcaster used on this query runner to broadcast entity events.\n */\n broadcaster: Broadcaster;\n\n // -------------------------------------------------------------------------\n // Protected Properties\n // -------------------------------------------------------------------------\n\n /**\n * Real database connection from a connection pool used to perform queries.\n */\n protected databaseConnection: any;\n\n /**\n * Indicates if special query runner mode in which sql queries won't be executed is enabled.\n */\n protected sqlMemoryMode: boolean = false;\n\n /**\n * Sql-s stored if \"sql in memory\" mode is enabled.\n */\n protected sqlInMemory: SqlInMemory = new SqlInMemory();\n\n /**\n * Mode in which query runner executes.\n * Used for replication.\n * If replication is not setup its value is ignored.\n */\n protected mode: ReplicationMode;\n\n // -------------------------------------------------------------------------\n // Public Abstract Methods\n // -------------------------------------------------------------------------\n\n /**\n * Executes a given SQL query.\n */\n abstract query(query: string, parameters?: any[], useStructuredResult?: boolean): Promise<any>;\n\n // -------------------------------------------------------------------------\n // Protected Abstract Methods\n // -------------------------------------------------------------------------\n\n protected abstract loadTables(tablePaths?: string[]): Promise<Table[]>;\n\n protected abstract loadViews(tablePaths?: string[]): Promise<View[]>;\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Loads given table's data from the database.\n */\n async getTable(tablePath: string): Promise<Table|undefined> {\n this.loadedTables = await this.loadTables([tablePath]);\n return this.loadedTables.length > 0 ? this.loadedTables[0] : undefined;\n }\n\n /**\n * Loads all tables (with given names) from the database.\n */\n async getTables(tableNames?: string[]): Promise<Table[]> {\n if (!tableNames) {\n // Don't cache in this case.\n // This is the new case & isn't used anywhere else anyway.\n return await this.loadTables(tableNames);\n }\n\n this.loadedTables = await this.loadTables(tableNames);\n return this.loadedTables;\n }\n\n /**\n * Loads given view's data from the database.\n */\n async getView(viewPath: string): Promise<View|undefined> {\n this.loadedViews = await this.loadViews([viewPath]);\n return this.loadedViews.length > 0 ? this.loadedViews[0] : undefined;\n }\n\n /**\n * Loads given view's data from the database.\n */\n async getViews(viewPaths?: string[]): Promise<View[]> {\n this.loadedViews = await this.loadViews(viewPaths);\n return this.loadedViews;\n }\n\n /**\n * Enables special query runner mode in which sql queries won't be executed,\n * instead they will be memorized into a special variable inside query runner.\n * You can get memorized sql using getMemorySql() method.\n */\n enableSqlMemory(): void {\n this.sqlInMemory = new SqlInMemory();\n this.sqlMemoryMode = true;\n }\n\n /**\n * Disables special query runner mode in which sql queries won't be executed\n * started by calling enableSqlMemory() method.\n *\n * Previously memorized sql will be flushed.\n */\n disableSqlMemory(): void {\n this.sqlInMemory = new SqlInMemory();\n this.sqlMemoryMode = false;\n }\n\n /**\n * Flushes all memorized sqls.\n */\n clearSqlMemory(): void {\n this.sqlInMemory = new SqlInMemory();\n }\n\n /**\n * Gets sql stored in the memory. Parameters in the sql are already replaced.\n */\n getMemorySql(): SqlInMemory {\n return this.sqlInMemory;\n }\n\n /**\n * Executes up sql queries.\n */\n async executeMemoryUpSql(): Promise<void> {\n for (const {query, parameters} of this.sqlInMemory.upQueries) {\n await this.query(query, parameters);\n }\n }\n\n /**\n * Executes down sql queries.\n */\n async executeMemoryDownSql(): Promise<void> {\n for (const {query, parameters} of this.sqlInMemory.downQueries.reverse()) {\n await this.query(query, parameters);\n }\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Gets view from previously loaded views, otherwise loads it from database.\n */\n protected async getCachedView(viewName: string): Promise<View> {\n const view = this.loadedViews.find(view => view.name === viewName);\n if (view) return view;\n\n const foundViews = await this.loadViews([viewName]);\n if (foundViews.length > 0) {\n this.loadedViews.push(foundViews[0]);\n return foundViews[0];\n } else {\n throw new TypeORMError(`View \"${viewName}\" does not exist.`);\n }\n }\n\n /**\n * Gets table from previously loaded tables, otherwise loads it from database.\n */\n protected async getCachedTable(tableName: string): Promise<Table> {\n const table = this.loadedTables.find(table => table.name === tableName);\n if (table) return table;\n\n const foundTables = await this.loadTables([tableName]);\n if (foundTables.length > 0) {\n this.loadedTables.push(foundTables[0]);\n return foundTables[0];\n } else {\n throw new TypeORMError(`Table \"${tableName}\" does not exist.`);\n }\n }\n\n /**\n * Replaces loaded table with given changed table.\n */\n protected replaceCachedTable(table: Table, changedTable: Table): void {\n const foundTable = this.loadedTables.find(loadedTable => loadedTable.name === table.name);\n if (foundTable) {\n foundTable.database = changedTable.database;\n foundTable.schema = changedTable.schema;\n foundTable.name = changedTable.name;\n foundTable.columns = changedTable.columns;\n foundTable.indices = changedTable.indices;\n foundTable.foreignKeys = changedTable.foreignKeys;\n foundTable.uniques = changedTable.uniques;\n foundTable.checks = changedTable.checks;\n foundTable.justCreated = changedTable.justCreated;\n foundTable.engine = changedTable.engine;\n }\n }\n\n protected getTablePath(target: EntityMetadata | Table | TableForeignKey | string): string {\n if (target instanceof Table) {\n return target.name;\n }\n\n if (target instanceof TableForeignKey) {\n return target.referencedTableName;\n }\n\n if (target instanceof EntityMetadata) {\n return target.tablePath;\n }\n\n return target;\n }\n\n protected getTypeormMetadataTableName(): string {\n const options = <SqlServerConnectionOptions|PostgresConnectionOptions>this.connection.driver.options;\n return this.connection.driver.buildTableName(\"typeorm_metadata\", options.schema, options.database);\n }\n\n /**\n * Checks if at least one of column properties was changed.\n * Does not checks column type, length and autoincrement, because these properties changes separately.\n */\n protected isColumnChanged(oldColumn: TableColumn, newColumn: TableColumn, checkDefault?: boolean, checkComment?: boolean): boolean {\n // this logs need to debug issues in column change detection. Do not delete it!\n\n // console.log(\"charset ---------------\");\n // console.log(oldColumn.charset !== newColumn.charset);\n // console.log(oldColumn.charset, newColumn.charset);\n // console.log(\"collation ---------------\");\n // console.log(oldColumn.collation !== newColumn.collation);\n // console.log(oldColumn.collation, newColumn.collation);\n // console.log(\"precision ---------------\");\n // console.log(oldColumn.precision !== newColumn.precision);\n // console.log(oldColumn.precision, newColumn.precision);\n // console.log(\"scale ---------------\");\n // console.log(oldColumn.scale !== newColumn.scale);\n // console.log(oldColumn.scale, newColumn.scale);\n // console.log(\"default ---------------\");\n // console.log((checkDefault && oldColumn.default !== newColumn.default));\n // console.log(oldColumn.default, newColumn.default);\n // console.log(\"isNullable ---------------\");\n // console.log(oldColumn.isNullable !== newColumn.isNullable);\n // console.log(oldColumn.isNullable, newColumn.isNullable);\n // console.log(\"comment ---------------\");\n // console.log((checkComment && oldColumn.comment !== newColumn.comment));\n // console.log(oldColumn.comment, newColumn.comment);\n // console.log(\"enum ---------------\");\n // console.log(oldColumn.enum !== newColumn.enum);\n // console.log(oldColumn.enum, newColumn.enum);\n\n return oldColumn.charset !== newColumn.charset\n || oldColumn.collation !== newColumn.collation\n || oldColumn.precision !== newColumn.precision\n || oldColumn.scale !== newColumn.scale\n || oldColumn.width !== newColumn.width // MySQL only\n || oldColumn.zerofill !== newColumn.zerofill // MySQL only\n || oldColumn.unsigned !== newColumn.unsigned // MySQL only\n || oldColumn.asExpression !== newColumn.asExpression // MySQL only\n || (checkDefault && oldColumn.default !== newColumn.default)\n || oldColumn.onUpdate !== newColumn.onUpdate // MySQL only\n || oldColumn.isNullable !== newColumn.isNullable\n || (checkComment && oldColumn.comment !== newColumn.comment)\n || oldColumn.enum !== newColumn.enum;\n }\n\n /**\n * Checks if column length is by default.\n */\n protected isDefaultColumnLength(table: Table, column: TableColumn, length: string): boolean {\n // if table have metadata, we check if length is specified in column metadata\n if (this.connection.hasMetadata(table.name)) {\n const metadata = this.connection.getMetadata(table.name);\n const columnMetadata = metadata.findColumnWithDatabaseName(column.name);\n\n if (columnMetadata) {\n const columnMetadataLength = this.connection.driver.getColumnLength(columnMetadata);\n if (columnMetadataLength)\n return false;\n }\n }\n\n if (this.connection.driver.dataTypeDefaults\n && this.connection.driver.dataTypeDefaults[column.type]\n && this.connection.driver.dataTypeDefaults[column.type].length) {\n return this.connection.driver.dataTypeDefaults[column.type].length!.toString() === length.toString();\n }\n\n return false;\n }\n\n /**\n * Checks if column precision is by default.\n */\n protected isDefaultColumnPrecision(table: Table, column: TableColumn, precision: number): boolean {\n // if table have metadata, we check if length is specified in column metadata\n if (this.connection.hasMetadata(table.name)) {\n const metadata = this.connection.getMetadata(table.name);\n const columnMetadata = metadata.findColumnWithDatabaseName(column.name);\n if (columnMetadata && columnMetadata.precision !== null && columnMetadata.precision !== undefined)\n return false;\n }\n\n if (this.connection.driver.dataTypeDefaults\n && this.connection.driver.dataTypeDefaults[column.type]\n && this.connection.driver.dataTypeDefaults[column.type].precision !== null\n && this.connection.driver.dataTypeDefaults[column.type].precision !== undefined)\n return this.connection.driver.dataTypeDefaults[column.type].precision === precision;\n\n return false;\n }\n\n /**\n * Checks if column scale is by default.\n */\n protected isDefaultColumnScale(table: Table, column: TableColumn, scale: number): boolean {\n // if table have metadata, we check if length is specified in column metadata\n if (this.connection.hasMetadata(table.name)) {\n const metadata = this.connection.getMetadata(table.name);\n const columnMetadata = metadata.findColumnWithDatabaseName(column.name);\n if (columnMetadata && columnMetadata.scale !== null && columnMetadata.scale !== undefined)\n return false;\n }\n\n if (this.connection.driver.dataTypeDefaults\n && this.connection.driver.dataTypeDefaults[column.type]\n && this.connection.driver.dataTypeDefaults[column.type].scale !== null\n && this.connection.driver.dataTypeDefaults[column.type].scale !== undefined)\n return this.connection.driver.dataTypeDefaults[column.type].scale === scale;\n\n return false;\n }\n\n /**\n * Executes sql used special for schema build.\n */\n protected async executeQueries(upQueries: Query|Query[], downQueries: Query|Query[]): Promise<void> {\n if (upQueries instanceof Query)\n upQueries = [upQueries];\n if (downQueries instanceof Query)\n downQueries = [downQueries];\n\n this.sqlInMemory.upQueries.push(...upQueries);\n this.sqlInMemory.downQueries.push(...downQueries);\n\n // if sql-in-memory mode is enabled then simply store sql in memory and return\n if (this.sqlMemoryMode === true)\n return Promise.resolve() as Promise<any>;\n\n for (const {query, parameters} of upQueries) {\n await this.query(query, parameters);\n }\n }\n\n}\n"],"sourceRoot":".."}
|
|
1
|
+
{"version":3,"sources":["../../src/query-runner/BaseQueryRunner.ts"],"names":[],"mappings":"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","file":"BaseQueryRunner.js","sourcesContent":["import {PostgresConnectionOptions} from \"../driver/postgres/PostgresConnectionOptions\";\nimport {Query} from \"../driver/Query\";\nimport {SqlInMemory} from \"../driver/SqlInMemory\";\nimport {SqlServerConnectionOptions} from \"../driver/sqlserver/SqlServerConnectionOptions\";\nimport {View} from \"../schema-builder/view/View\";\nimport {Connection} from \"../connection/Connection\";\nimport {Table} from \"../schema-builder/table/Table\";\nimport {EntityManager} from \"../entity-manager/EntityManager\";\nimport {TableColumn} from \"../schema-builder/table/TableColumn\";\nimport {Broadcaster} from \"../subscriber/Broadcaster\";\nimport {ReplicationMode} from \"../driver/types/ReplicationMode\";\nimport { TypeORMError } from \"../error/TypeORMError\";\nimport { EntityMetadata } from \"../metadata/EntityMetadata\";\nimport { TableForeignKey } from \"../schema-builder/table/TableForeignKey\";\n\nexport abstract class BaseQueryRunner {\n\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Connection used by this query runner.\n */\n connection: Connection;\n\n /**\n * Entity manager working only with current query runner.\n */\n manager: EntityManager;\n\n /**\n * Indicates if connection for this query runner is released.\n * Once its released, query runner cannot run queries anymore.\n */\n isReleased = false;\n\n /**\n * Indicates if transaction is in progress.\n */\n isTransactionActive = false;\n\n /**\n * Stores temporarily user data.\n * Useful for sharing data with subscribers.\n */\n data = {};\n\n /**\n * All synchronized tables in the database.\n */\n loadedTables: Table[] = [];\n\n /**\n * All synchronized views in the database.\n */\n loadedViews: View[] = [];\n\n /**\n * Broadcaster used on this query runner to broadcast entity events.\n */\n broadcaster: Broadcaster;\n\n // -------------------------------------------------------------------------\n // Protected Properties\n // -------------------------------------------------------------------------\n\n /**\n * Real database connection from a connection pool used to perform queries.\n */\n protected databaseConnection: any;\n\n /**\n * Indicates if special query runner mode in which sql queries won't be executed is enabled.\n */\n protected sqlMemoryMode: boolean = false;\n\n /**\n * Sql-s stored if \"sql in memory\" mode is enabled.\n */\n protected sqlInMemory: SqlInMemory = new SqlInMemory();\n\n /**\n * Mode in which query runner executes.\n * Used for replication.\n * If replication is not setup its value is ignored.\n */\n protected mode: ReplicationMode;\n\n private cachedTablePaths: Record<string, string> = {};\n\n // -------------------------------------------------------------------------\n // Public Abstract Methods\n // -------------------------------------------------------------------------\n\n /**\n * Executes a given SQL query.\n */\n abstract query(query: string, parameters?: any[], useStructuredResult?: boolean): Promise<any>;\n\n // -------------------------------------------------------------------------\n // Protected Abstract Methods\n // -------------------------------------------------------------------------\n\n protected abstract loadTables(tablePaths?: string[]): Promise<Table[]>;\n\n protected abstract loadViews(tablePaths?: string[]): Promise<View[]>;\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Loads given table's data from the database.\n */\n async getTable(tablePath: string): Promise<Table|undefined> {\n this.loadedTables = await this.loadTables([tablePath]);\n return this.loadedTables.length > 0 ? this.loadedTables[0] : undefined;\n }\n\n /**\n * Loads all tables (with given names) from the database.\n */\n async getTables(tableNames?: string[]): Promise<Table[]> {\n if (!tableNames) {\n // Don't cache in this case.\n // This is the new case & isn't used anywhere else anyway.\n return await this.loadTables(tableNames);\n }\n\n this.loadedTables = await this.loadTables(tableNames);\n return this.loadedTables;\n }\n\n /**\n * Loads given view's data from the database.\n */\n async getView(viewPath: string): Promise<View|undefined> {\n this.loadedViews = await this.loadViews([viewPath]);\n return this.loadedViews.length > 0 ? this.loadedViews[0] : undefined;\n }\n\n /**\n * Loads given view's data from the database.\n */\n async getViews(viewPaths?: string[]): Promise<View[]> {\n this.loadedViews = await this.loadViews(viewPaths);\n return this.loadedViews;\n }\n\n /**\n * Enables special query runner mode in which sql queries won't be executed,\n * instead they will be memorized into a special variable inside query runner.\n * You can get memorized sql using getMemorySql() method.\n */\n enableSqlMemory(): void {\n this.sqlInMemory = new SqlInMemory();\n this.sqlMemoryMode = true;\n }\n\n /**\n * Disables special query runner mode in which sql queries won't be executed\n * started by calling enableSqlMemory() method.\n *\n * Previously memorized sql will be flushed.\n */\n disableSqlMemory(): void {\n this.sqlInMemory = new SqlInMemory();\n this.sqlMemoryMode = false;\n }\n\n /**\n * Flushes all memorized sqls.\n */\n clearSqlMemory(): void {\n this.sqlInMemory = new SqlInMemory();\n }\n\n /**\n * Gets sql stored in the memory. Parameters in the sql are already replaced.\n */\n getMemorySql(): SqlInMemory {\n return this.sqlInMemory;\n }\n\n /**\n * Executes up sql queries.\n */\n async executeMemoryUpSql(): Promise<void> {\n for (const {query, parameters} of this.sqlInMemory.upQueries) {\n await this.query(query, parameters);\n }\n }\n\n /**\n * Executes down sql queries.\n */\n async executeMemoryDownSql(): Promise<void> {\n for (const {query, parameters} of this.sqlInMemory.downQueries.reverse()) {\n await this.query(query, parameters);\n }\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Gets view from previously loaded views, otherwise loads it from database.\n */\n protected async getCachedView(viewName: string): Promise<View> {\n const view = this.loadedViews.find(view => view.name === viewName);\n if (view) return view;\n\n const foundViews = await this.loadViews([viewName]);\n if (foundViews.length > 0) {\n this.loadedViews.push(foundViews[0]);\n return foundViews[0];\n } else {\n throw new TypeORMError(`View \"${viewName}\" does not exist.`);\n }\n }\n\n /**\n * Gets table from previously loaded tables, otherwise loads it from database.\n */\n protected async getCachedTable(tableName: string): Promise<Table> {\n if (tableName in this.cachedTablePaths) {\n const tablePath = this.cachedTablePaths[tableName];\n const table = this.loadedTables.find(table => this.getTablePath(table) === tablePath);\n\n if (table) {\n return table;\n }\n }\n\n const foundTables = await this.loadTables([tableName]);\n\n if (foundTables.length > 0) {\n const foundTablePath = this.getTablePath(foundTables[0]);\n\n const cachedTable = this.loadedTables.find((table) => this.getTablePath(table) === foundTablePath);\n\n if (!cachedTable) {\n this.cachedTablePaths[tableName] = this.getTablePath(foundTables[0]);\n this.loadedTables.push(foundTables[0]);\n return foundTables[0];\n } else {\n return cachedTable;\n }\n } else {\n throw new TypeORMError(`Table \"${tableName}\" does not exist.`);\n }\n }\n\n /**\n * Replaces loaded table with given changed table.\n */\n protected replaceCachedTable(table: Table, changedTable: Table): void {\n const oldTablePath = this.getTablePath(table);\n const foundTable = this.loadedTables.find(loadedTable => this.getTablePath(loadedTable) === oldTablePath);\n\n // Clean up the lookup cache..\n for (const [key, cachedPath] of Object.entries(this.cachedTablePaths)) {\n if (cachedPath === oldTablePath) {\n this.cachedTablePaths[key] = this.getTablePath(changedTable);\n }\n }\n\n if (foundTable) {\n foundTable.database = changedTable.database;\n foundTable.schema = changedTable.schema;\n foundTable.name = changedTable.name;\n foundTable.columns = changedTable.columns;\n foundTable.indices = changedTable.indices;\n foundTable.foreignKeys = changedTable.foreignKeys;\n foundTable.uniques = changedTable.uniques;\n foundTable.checks = changedTable.checks;\n foundTable.justCreated = changedTable.justCreated;\n foundTable.engine = changedTable.engine;\n }\n }\n\n protected getTablePath(target: EntityMetadata | Table | View | TableForeignKey | string): string {\n const parsed = this.connection.driver.parseTableName(target);\n\n return this.connection.driver.buildTableName(\n parsed.tableName,\n parsed.schema,\n parsed.database\n );\n }\n\n protected getTypeormMetadataTableName(): string {\n const options = <SqlServerConnectionOptions|PostgresConnectionOptions>this.connection.driver.options;\n return this.connection.driver.buildTableName(\"typeorm_metadata\", options.schema, options.database);\n }\n\n /**\n * Checks if at least one of column properties was changed.\n * Does not checks column type, length and autoincrement, because these properties changes separately.\n */\n protected isColumnChanged(oldColumn: TableColumn, newColumn: TableColumn, checkDefault?: boolean, checkComment?: boolean): boolean {\n // this logs need to debug issues in column change detection. Do not delete it!\n\n // console.log(\"charset ---------------\");\n // console.log(oldColumn.charset !== newColumn.charset);\n // console.log(oldColumn.charset, newColumn.charset);\n // console.log(\"collation ---------------\");\n // console.log(oldColumn.collation !== newColumn.collation);\n // console.log(oldColumn.collation, newColumn.collation);\n // console.log(\"precision ---------------\");\n // console.log(oldColumn.precision !== newColumn.precision);\n // console.log(oldColumn.precision, newColumn.precision);\n // console.log(\"scale ---------------\");\n // console.log(oldColumn.scale !== newColumn.scale);\n // console.log(oldColumn.scale, newColumn.scale);\n // console.log(\"default ---------------\");\n // console.log((checkDefault && oldColumn.default !== newColumn.default));\n // console.log(oldColumn.default, newColumn.default);\n // console.log(\"isNullable ---------------\");\n // console.log(oldColumn.isNullable !== newColumn.isNullable);\n // console.log(oldColumn.isNullable, newColumn.isNullable);\n // console.log(\"comment ---------------\");\n // console.log((checkComment && oldColumn.comment !== newColumn.comment));\n // console.log(oldColumn.comment, newColumn.comment);\n // console.log(\"enum ---------------\");\n // console.log(oldColumn.enum !== newColumn.enum);\n // console.log(oldColumn.enum, newColumn.enum);\n\n return oldColumn.charset !== newColumn.charset\n || oldColumn.collation !== newColumn.collation\n || oldColumn.precision !== newColumn.precision\n || oldColumn.scale !== newColumn.scale\n || oldColumn.width !== newColumn.width // MySQL only\n || oldColumn.zerofill !== newColumn.zerofill // MySQL only\n || oldColumn.unsigned !== newColumn.unsigned // MySQL only\n || oldColumn.asExpression !== newColumn.asExpression // MySQL only\n || (checkDefault && oldColumn.default !== newColumn.default)\n || oldColumn.onUpdate !== newColumn.onUpdate // MySQL only\n || oldColumn.isNullable !== newColumn.isNullable\n || (checkComment && oldColumn.comment !== newColumn.comment)\n || oldColumn.enum !== newColumn.enum;\n }\n\n /**\n * Checks if column length is by default.\n */\n protected isDefaultColumnLength(table: Table, column: TableColumn, length: string): boolean {\n // if table have metadata, we check if length is specified in column metadata\n if (this.connection.hasMetadata(table.name)) {\n const metadata = this.connection.getMetadata(table.name);\n const columnMetadata = metadata.findColumnWithDatabaseName(column.name);\n\n if (columnMetadata) {\n const columnMetadataLength = this.connection.driver.getColumnLength(columnMetadata);\n if (columnMetadataLength)\n return false;\n }\n }\n\n if (this.connection.driver.dataTypeDefaults\n && this.connection.driver.dataTypeDefaults[column.type]\n && this.connection.driver.dataTypeDefaults[column.type].length) {\n return this.connection.driver.dataTypeDefaults[column.type].length!.toString() === length.toString();\n }\n\n return false;\n }\n\n /**\n * Checks if column precision is by default.\n */\n protected isDefaultColumnPrecision(table: Table, column: TableColumn, precision: number): boolean {\n // if table have metadata, we check if length is specified in column metadata\n if (this.connection.hasMetadata(table.name)) {\n const metadata = this.connection.getMetadata(table.name);\n const columnMetadata = metadata.findColumnWithDatabaseName(column.name);\n if (columnMetadata && columnMetadata.precision !== null && columnMetadata.precision !== undefined)\n return false;\n }\n\n if (this.connection.driver.dataTypeDefaults\n && this.connection.driver.dataTypeDefaults[column.type]\n && this.connection.driver.dataTypeDefaults[column.type].precision !== null\n && this.connection.driver.dataTypeDefaults[column.type].precision !== undefined)\n return this.connection.driver.dataTypeDefaults[column.type].precision === precision;\n\n return false;\n }\n\n /**\n * Checks if column scale is by default.\n */\n protected isDefaultColumnScale(table: Table, column: TableColumn, scale: number): boolean {\n // if table have metadata, we check if length is specified in column metadata\n if (this.connection.hasMetadata(table.name)) {\n const metadata = this.connection.getMetadata(table.name);\n const columnMetadata = metadata.findColumnWithDatabaseName(column.name);\n if (columnMetadata && columnMetadata.scale !== null && columnMetadata.scale !== undefined)\n return false;\n }\n\n if (this.connection.driver.dataTypeDefaults\n && this.connection.driver.dataTypeDefaults[column.type]\n && this.connection.driver.dataTypeDefaults[column.type].scale !== null\n && this.connection.driver.dataTypeDefaults[column.type].scale !== undefined)\n return this.connection.driver.dataTypeDefaults[column.type].scale === scale;\n\n return false;\n }\n\n /**\n * Executes sql used special for schema build.\n */\n protected async executeQueries(upQueries: Query|Query[], downQueries: Query|Query[]): Promise<void> {\n if (upQueries instanceof Query)\n upQueries = [upQueries];\n if (downQueries instanceof Query)\n downQueries = [downQueries];\n\n this.sqlInMemory.upQueries.push(...upQueries);\n this.sqlInMemory.downQueries.push(...downQueries);\n\n // if sql-in-memory mode is enabled then simply store sql in memory and return\n if (this.sqlMemoryMode === true)\n return Promise.resolve() as Promise<any>;\n\n for (const {query, parameters} of upQueries) {\n await this.query(query, parameters);\n }\n }\n\n}\n"],"sourceRoot":".."}
|
|
@@ -25,6 +25,8 @@ export declare class RdbmsSchemaBuilder implements SchemaBuilder {
|
|
|
25
25
|
* Used to execute schema creation queries in a single connection.
|
|
26
26
|
*/
|
|
27
27
|
protected queryRunner: QueryRunner;
|
|
28
|
+
private currentDatabase?;
|
|
29
|
+
private currentSchema?;
|
|
28
30
|
constructor(connection: Connection);
|
|
29
31
|
/**
|
|
30
32
|
* Creates complete schemas for the given entity metadatas.
|