typeorm 0.2.28 → 0.2.29
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 +7 -2
- package/browser/connection/ConnectionOptionsReader.js +27 -27
- package/browser/connection/ConnectionOptionsReader.js.map +1 -1
- package/browser/decorator/entity/ChildEntity.js +1 -1
- package/browser/decorator/entity/ChildEntity.js.map +1 -1
- package/browser/driver/DriverUtils.js +20 -12
- package/browser/driver/DriverUtils.js.map +1 -1
- package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js +53 -6
- package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
- package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +53 -6
- package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachDriver.js +3 -3
- package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +4 -0
- package/browser/driver/cockroachdb/CockroachQueryRunner.js +112 -42
- package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/browser/driver/expo/ExpoQueryRunner.js +72 -14
- package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
- package/browser/driver/mongodb/MongoConnectionOptions.d.ts +4 -0
- package/browser/driver/mongodb/MongoConnectionOptions.js.map +1 -1
- package/browser/driver/mongodb/MongoDriver.d.ts +7 -3
- package/browser/driver/mongodb/MongoDriver.js +15 -14
- package/browser/driver/mongodb/MongoDriver.js.map +1 -1
- package/browser/driver/mongodb/MongoQueryRunner.d.ts +3 -3
- package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
- package/browser/driver/mysql/MysqlDriver.js +4 -4
- package/browser/driver/mysql/MysqlDriver.js.map +1 -1
- package/browser/driver/mysql/MysqlQueryRunner.d.ts +4 -0
- package/browser/driver/mysql/MysqlQueryRunner.js +107 -38
- package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/browser/driver/oracle/OracleQueryRunner.js +52 -6
- package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/browser/driver/postgres/PostgresDriver.js +7 -7
- package/browser/driver/postgres/PostgresDriver.js.map +1 -1
- package/browser/driver/postgres/PostgresQueryRunner.d.ts +8 -0
- package/browser/driver/postgres/PostgresQueryRunner.js +107 -18
- package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/browser/driver/react-native/ReactNativeDriver.js +1 -2
- package/browser/driver/react-native/ReactNativeDriver.js.map +1 -1
- package/browser/driver/sap/SapQueryRunner.js +56 -8
- package/browser/driver/sap/SapQueryRunner.js.map +1 -1
- package/browser/driver/sqlite/SqliteQueryRunner.js +4 -0
- package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +55 -7
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerQueryRunner.js +133 -62
- package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/browser/entity-manager/MongoEntityManager.js +14 -3
- package/browser/entity-manager/MongoEntityManager.js.map +1 -1
- package/browser/find-options/FindOneOptions.d.ts +4 -0
- package/browser/find-options/FindOneOptions.js.map +1 -1
- package/browser/find-options/FindOperator.d.ts +20 -1
- package/browser/find-options/FindOperator.js +27 -1
- package/browser/find-options/FindOperator.js.map +1 -1
- package/browser/find-options/FindOperatorType.d.ts +1 -1
- package/browser/find-options/FindOperatorType.js.map +1 -1
- package/browser/find-options/FindOptionsUtils.js +5 -1
- package/browser/find-options/FindOptionsUtils.js.map +1 -1
- package/browser/find-options/operator/ILike.d.ts +6 -0
- package/browser/find-options/operator/ILike.js +10 -0
- package/browser/find-options/operator/ILike.js.map +1 -0
- package/browser/find-options/operator/Raw.d.ts +14 -2
- package/browser/find-options/operator/Raw.js +5 -6
- package/browser/find-options/operator/Raw.js.map +1 -1
- package/browser/index.d.ts +2 -0
- package/browser/index.js +1 -0
- package/browser/index.js.map +1 -1
- package/browser/logger/Logger.d.ts +1 -1
- package/browser/logger/Logger.js.map +1 -1
- package/browser/metadata/ColumnMetadata.js +14 -3
- package/browser/metadata/ColumnMetadata.js.map +1 -1
- package/browser/metadata/types/EventListenerTypes.d.ts +7 -7
- package/browser/metadata/types/EventListenerTypes.js.map +1 -1
- package/browser/metadata-builder/EntityMetadataBuilder.js +14 -8
- package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
- package/browser/metadata-builder/EntityMetadataValidator.js +8 -5
- package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
- package/browser/persistence/EntityPersistExecutor.js +1 -1
- package/browser/persistence/EntityPersistExecutor.js.map +1 -1
- package/browser/persistence/Subject.js +2 -1
- package/browser/persistence/Subject.js.map +1 -1
- package/browser/query-builder/DeleteQueryBuilder.js +2 -1
- package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
- package/browser/query-builder/InsertQueryBuilder.js +31 -8
- package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
- package/browser/query-builder/QueryBuilder.d.ts +7 -0
- package/browser/query-builder/QueryBuilder.js +125 -32
- package/browser/query-builder/QueryBuilder.js.map +1 -1
- package/browser/query-builder/QueryExpressionMap.d.ts +4 -0
- package/browser/query-builder/QueryExpressionMap.js.map +1 -1
- package/browser/query-builder/SelectQueryBuilder.d.ts +5 -0
- package/browser/query-builder/SelectQueryBuilder.js +73 -40
- package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
- package/browser/query-builder/UpdateQueryBuilder.js +2 -1
- package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
- package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +6 -3
- package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
- package/browser/query-runner/QueryRunner.d.ts +1 -1
- package/browser/query-runner/QueryRunner.js.map +1 -1
- package/browser/repository/TreeRepository.js +2 -2
- package/browser/repository/TreeRepository.js.map +1 -1
- package/browser/subscriber/Broadcaster.d.ts +24 -0
- package/browser/subscriber/Broadcaster.js +120 -0
- package/browser/subscriber/Broadcaster.js.map +1 -1
- package/browser/subscriber/EntitySubscriberInterface.d.ts +27 -0
- package/browser/subscriber/EntitySubscriberInterface.js.map +1 -1
- package/browser/subscriber/event/TransactionCommitEvent.d.ts +22 -0
- package/browser/subscriber/event/TransactionCommitEvent.js +3 -0
- package/browser/subscriber/event/TransactionCommitEvent.js.map +1 -0
- package/browser/subscriber/event/TransactionRollbackEvent.d.ts +22 -0
- package/browser/subscriber/event/TransactionRollbackEvent.js +3 -0
- package/browser/subscriber/event/TransactionRollbackEvent.js.map +1 -0
- package/browser/subscriber/event/TransactionStartEvent.d.ts +22 -0
- package/browser/subscriber/event/TransactionStartEvent.js +3 -0
- package/browser/subscriber/event/TransactionStartEvent.js.map +1 -0
- package/browser/util/DateUtils.js +1 -7
- package/browser/util/DateUtils.js.map +1 -1
- package/commands/EntityCreateCommand.js +5 -2
- package/commands/EntityCreateCommand.js.map +1 -1
- package/commands/InitCommand.js +1 -1
- package/commands/InitCommand.js.map +1 -1
- package/commands/MigrationCreateCommand.js +4 -1
- package/commands/MigrationCreateCommand.js.map +1 -1
- package/commands/MigrationGenerateCommand.js +26 -28
- package/commands/MigrationGenerateCommand.js.map +1 -1
- package/commands/QueryCommand.d.ts +2 -0
- package/commands/QueryCommand.js +12 -3
- package/commands/QueryCommand.js.map +1 -1
- package/commands/SubscriberCreateCommand.js +5 -2
- package/commands/SubscriberCreateCommand.js.map +1 -1
- package/connection/ConnectionOptionsReader.js +27 -27
- package/connection/ConnectionOptionsReader.js.map +1 -1
- package/decorator/entity/ChildEntity.js +1 -1
- package/decorator/entity/ChildEntity.js.map +1 -1
- package/driver/DriverUtils.js +19 -11
- package/driver/DriverUtils.js.map +1 -1
- package/driver/aurora-data-api/AuroraDataApiQueryRunner.js +53 -6
- package/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
- package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +53 -6
- package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -1
- package/driver/cockroachdb/CockroachDriver.js +3 -3
- package/driver/cockroachdb/CockroachDriver.js.map +1 -1
- package/driver/cockroachdb/CockroachQueryRunner.d.ts +4 -0
- package/driver/cockroachdb/CockroachQueryRunner.js +112 -42
- package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/driver/expo/ExpoQueryRunner.js +72 -14
- package/driver/expo/ExpoQueryRunner.js.map +1 -1
- package/driver/mongodb/MongoConnectionOptions.d.ts +4 -0
- package/driver/mongodb/MongoConnectionOptions.js.map +1 -1
- package/driver/mongodb/MongoDriver.d.ts +7 -3
- package/driver/mongodb/MongoDriver.js +15 -14
- package/driver/mongodb/MongoDriver.js.map +1 -1
- package/driver/mongodb/MongoQueryRunner.d.ts +3 -3
- package/driver/mongodb/MongoQueryRunner.js.map +1 -1
- package/driver/mysql/MysqlDriver.js +4 -4
- package/driver/mysql/MysqlDriver.js.map +1 -1
- package/driver/mysql/MysqlQueryRunner.d.ts +4 -0
- package/driver/mysql/MysqlQueryRunner.js +107 -38
- package/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/driver/oracle/OracleQueryRunner.js +52 -6
- package/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/driver/postgres/PostgresDriver.js +7 -7
- package/driver/postgres/PostgresDriver.js.map +1 -1
- package/driver/postgres/PostgresQueryRunner.d.ts +8 -0
- package/driver/postgres/PostgresQueryRunner.js +107 -18
- package/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/driver/react-native/ReactNativeDriver.js +1 -2
- package/driver/react-native/ReactNativeDriver.js.map +1 -1
- package/driver/sap/SapQueryRunner.js +56 -8
- package/driver/sap/SapQueryRunner.js.map +1 -1
- package/driver/sqlite/SqliteQueryRunner.js +4 -0
- package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +55 -7
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/driver/sqlserver/SqlServerQueryRunner.js +133 -62
- package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/entity-manager/MongoEntityManager.js +14 -3
- package/entity-manager/MongoEntityManager.js.map +1 -1
- package/find-options/FindOneOptions.d.ts +4 -0
- package/find-options/FindOneOptions.js.map +1 -1
- package/find-options/FindOperator.d.ts +20 -1
- package/find-options/FindOperator.js +27 -1
- package/find-options/FindOperator.js.map +1 -1
- package/find-options/FindOperatorType.d.ts +1 -1
- package/find-options/FindOperatorType.js.map +1 -1
- package/find-options/FindOptionsUtils.js +5 -1
- package/find-options/FindOptionsUtils.js.map +1 -1
- package/find-options/operator/ILike.d.ts +6 -0
- package/find-options/operator/ILike.js +13 -0
- package/find-options/operator/ILike.js.map +1 -0
- package/find-options/operator/Raw.d.ts +14 -2
- package/find-options/operator/Raw.js +5 -6
- package/find-options/operator/Raw.js.map +1 -1
- package/index.d.ts +2 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/logger/Logger.d.ts +1 -1
- package/logger/Logger.js.map +1 -1
- package/metadata/ColumnMetadata.js +14 -3
- package/metadata/ColumnMetadata.js.map +1 -1
- package/metadata/types/EventListenerTypes.d.ts +7 -7
- package/metadata/types/EventListenerTypes.js.map +1 -1
- package/metadata-builder/EntityMetadataBuilder.js +14 -8
- package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
- package/metadata-builder/EntityMetadataValidator.js +8 -5
- package/metadata-builder/EntityMetadataValidator.js.map +1 -1
- package/package.json +3 -2
- package/persistence/EntityPersistExecutor.js +1 -1
- package/persistence/EntityPersistExecutor.js.map +1 -1
- package/persistence/Subject.js +2 -1
- package/persistence/Subject.js.map +1 -1
- package/query-builder/DeleteQueryBuilder.js +2 -1
- package/query-builder/DeleteQueryBuilder.js.map +1 -1
- package/query-builder/InsertQueryBuilder.js +31 -8
- package/query-builder/InsertQueryBuilder.js.map +1 -1
- package/query-builder/QueryBuilder.d.ts +7 -0
- package/query-builder/QueryBuilder.js +124 -31
- package/query-builder/QueryBuilder.js.map +1 -1
- package/query-builder/QueryExpressionMap.d.ts +4 -0
- package/query-builder/QueryExpressionMap.js.map +1 -1
- package/query-builder/SelectQueryBuilder.d.ts +5 -0
- package/query-builder/SelectQueryBuilder.js +73 -40
- package/query-builder/SelectQueryBuilder.js.map +1 -1
- package/query-builder/UpdateQueryBuilder.js +2 -1
- package/query-builder/UpdateQueryBuilder.js.map +1 -1
- package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +6 -3
- package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
- package/query-runner/QueryRunner.d.ts +1 -1
- package/query-runner/QueryRunner.js.map +1 -1
- package/repository/TreeRepository.js +2 -2
- package/repository/TreeRepository.js.map +1 -1
- package/subscriber/Broadcaster.d.ts +24 -0
- package/subscriber/Broadcaster.js +120 -0
- package/subscriber/Broadcaster.js.map +1 -1
- package/subscriber/EntitySubscriberInterface.d.ts +27 -0
- package/subscriber/EntitySubscriberInterface.js.map +1 -1
- package/subscriber/event/TransactionCommitEvent.d.ts +22 -0
- package/subscriber/event/TransactionCommitEvent.js +4 -0
- package/subscriber/event/TransactionCommitEvent.js.map +1 -0
- package/subscriber/event/TransactionRollbackEvent.d.ts +22 -0
- package/subscriber/event/TransactionRollbackEvent.js +4 -0
- package/subscriber/event/TransactionRollbackEvent.js.map +1 -0
- package/subscriber/event/TransactionStartEvent.d.ts +22 -0
- package/subscriber/event/TransactionStartEvent.js +4 -0
- package/subscriber/event/TransactionStartEvent.js.map +1 -0
- package/typeorm-model-shim.js +145 -128
- package/util/DateUtils.js +1 -7
- package/util/DateUtils.js.map +1 -1
|
@@ -16,6 +16,7 @@ var TableUnique_1 = require("../../schema-builder/table/TableUnique");
|
|
|
16
16
|
var BaseQueryRunner_1 = require("../../query-runner/BaseQueryRunner");
|
|
17
17
|
var Broadcaster_1 = require("../../subscriber/Broadcaster");
|
|
18
18
|
var VersionUtils_1 = require("../../util/VersionUtils");
|
|
19
|
+
var BroadcasterResult_1 = require("../../subscriber/BroadcasterResult");
|
|
19
20
|
/**
|
|
20
21
|
* Runs queries on a single mysql database connection.
|
|
21
22
|
*/
|
|
@@ -74,25 +75,42 @@ var MysqlQueryRunner = /** @class */ (function (_super) {
|
|
|
74
75
|
*/
|
|
75
76
|
MysqlQueryRunner.prototype.startTransaction = function (isolationLevel) {
|
|
76
77
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
78
|
+
var beforeBroadcastResult, afterBroadcastResult;
|
|
77
79
|
return tslib_1.__generator(this, function (_a) {
|
|
78
80
|
switch (_a.label) {
|
|
79
81
|
case 0:
|
|
80
82
|
if (this.isTransactionActive)
|
|
81
83
|
throw new TransactionAlreadyStartedError_1.TransactionAlreadyStartedError();
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
84
|
+
beforeBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
|
|
85
|
+
this.broadcaster.broadcastBeforeTransactionStartEvent(beforeBroadcastResult);
|
|
86
|
+
if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];
|
|
87
|
+
return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];
|
|
85
88
|
case 1:
|
|
86
89
|
_a.sent();
|
|
87
|
-
|
|
90
|
+
_a.label = 2;
|
|
88
91
|
case 2:
|
|
92
|
+
this.isTransactionActive = true;
|
|
93
|
+
if (!isolationLevel) return [3 /*break*/, 5];
|
|
94
|
+
return [4 /*yield*/, this.query("SET TRANSACTION ISOLATION LEVEL " + isolationLevel)];
|
|
95
|
+
case 3:
|
|
89
96
|
_a.sent();
|
|
90
|
-
return [
|
|
91
|
-
case 3: return [4 /*yield*/, this.query("START TRANSACTION")];
|
|
97
|
+
return [4 /*yield*/, this.query("START TRANSACTION")];
|
|
92
98
|
case 4:
|
|
93
99
|
_a.sent();
|
|
94
|
-
|
|
95
|
-
case 5: return [
|
|
100
|
+
return [3 /*break*/, 7];
|
|
101
|
+
case 5: return [4 /*yield*/, this.query("START TRANSACTION")];
|
|
102
|
+
case 6:
|
|
103
|
+
_a.sent();
|
|
104
|
+
_a.label = 7;
|
|
105
|
+
case 7:
|
|
106
|
+
afterBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
|
|
107
|
+
this.broadcaster.broadcastAfterTransactionStartEvent(afterBroadcastResult);
|
|
108
|
+
if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 9];
|
|
109
|
+
return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];
|
|
110
|
+
case 8:
|
|
111
|
+
_a.sent();
|
|
112
|
+
_a.label = 9;
|
|
113
|
+
case 9: return [2 /*return*/];
|
|
96
114
|
}
|
|
97
115
|
});
|
|
98
116
|
});
|
|
@@ -103,16 +121,31 @@ var MysqlQueryRunner = /** @class */ (function (_super) {
|
|
|
103
121
|
*/
|
|
104
122
|
MysqlQueryRunner.prototype.commitTransaction = function () {
|
|
105
123
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
124
|
+
var beforeBroadcastResult, afterBroadcastResult;
|
|
106
125
|
return tslib_1.__generator(this, function (_a) {
|
|
107
126
|
switch (_a.label) {
|
|
108
127
|
case 0:
|
|
109
128
|
if (!this.isTransactionActive)
|
|
110
129
|
throw new TransactionNotStartedError_1.TransactionNotStartedError();
|
|
111
|
-
|
|
130
|
+
beforeBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
|
|
131
|
+
this.broadcaster.broadcastBeforeTransactionCommitEvent(beforeBroadcastResult);
|
|
132
|
+
if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];
|
|
133
|
+
return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];
|
|
112
134
|
case 1:
|
|
135
|
+
_a.sent();
|
|
136
|
+
_a.label = 2;
|
|
137
|
+
case 2: return [4 /*yield*/, this.query("COMMIT")];
|
|
138
|
+
case 3:
|
|
113
139
|
_a.sent();
|
|
114
140
|
this.isTransactionActive = false;
|
|
115
|
-
|
|
141
|
+
afterBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
|
|
142
|
+
this.broadcaster.broadcastAfterTransactionCommitEvent(afterBroadcastResult);
|
|
143
|
+
if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 5];
|
|
144
|
+
return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];
|
|
145
|
+
case 4:
|
|
146
|
+
_a.sent();
|
|
147
|
+
_a.label = 5;
|
|
148
|
+
case 5: return [2 /*return*/];
|
|
116
149
|
}
|
|
117
150
|
});
|
|
118
151
|
});
|
|
@@ -123,16 +156,31 @@ var MysqlQueryRunner = /** @class */ (function (_super) {
|
|
|
123
156
|
*/
|
|
124
157
|
MysqlQueryRunner.prototype.rollbackTransaction = function () {
|
|
125
158
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
159
|
+
var beforeBroadcastResult, afterBroadcastResult;
|
|
126
160
|
return tslib_1.__generator(this, function (_a) {
|
|
127
161
|
switch (_a.label) {
|
|
128
162
|
case 0:
|
|
129
163
|
if (!this.isTransactionActive)
|
|
130
164
|
throw new TransactionNotStartedError_1.TransactionNotStartedError();
|
|
131
|
-
|
|
165
|
+
beforeBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
|
|
166
|
+
this.broadcaster.broadcastBeforeTransactionRollbackEvent(beforeBroadcastResult);
|
|
167
|
+
if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];
|
|
168
|
+
return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];
|
|
132
169
|
case 1:
|
|
170
|
+
_a.sent();
|
|
171
|
+
_a.label = 2;
|
|
172
|
+
case 2: return [4 /*yield*/, this.query("ROLLBACK")];
|
|
173
|
+
case 3:
|
|
133
174
|
_a.sent();
|
|
134
175
|
this.isTransactionActive = false;
|
|
135
|
-
|
|
176
|
+
afterBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
|
|
177
|
+
this.broadcaster.broadcastAfterTransactionRollbackEvent(afterBroadcastResult);
|
|
178
|
+
if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 5];
|
|
179
|
+
return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];
|
|
180
|
+
case 4:
|
|
181
|
+
_a.sent();
|
|
182
|
+
_a.label = 5;
|
|
183
|
+
case 5: return [2 /*return*/];
|
|
136
184
|
}
|
|
137
185
|
});
|
|
138
186
|
});
|
|
@@ -828,7 +876,7 @@ var MysqlQueryRunner = /** @class */ (function (_super) {
|
|
|
828
876
|
clonedTable.columns[clonedTable.columns.indexOf(oldTableColumn)].name = newColumn.name;
|
|
829
877
|
oldColumn.name = newColumn.name;
|
|
830
878
|
}
|
|
831
|
-
if (this.isColumnChanged(oldColumn, newColumn, true)) {
|
|
879
|
+
if (this.isColumnChanged(oldColumn, newColumn, true, true)) {
|
|
832
880
|
upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + oldColumn.name + "` " + this.buildCreateColumnSql(newColumn, true)));
|
|
833
881
|
downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + newColumn.name + "` " + this.buildCreateColumnSql(oldColumn, true)));
|
|
834
882
|
}
|
|
@@ -1676,7 +1724,7 @@ var MysqlQueryRunner = /** @class */ (function (_super) {
|
|
|
1676
1724
|
*/
|
|
1677
1725
|
MysqlQueryRunner.prototype.loadTables = function (tableNames) {
|
|
1678
1726
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
1679
|
-
var currentDatabase,
|
|
1727
|
+
var currentDatabase, statsSubquerySql, kcuSubquerySql, rcSubquerySql, tablesSql, columnsSql, collationsSql, primaryKeySql, indicesSql, foreignKeysSql, _a, dbTables, dbColumns, dbPrimaryKeys, dbCollations, dbIndices, dbForeignKeys, isMariaDb, dbVersion;
|
|
1680
1728
|
var _this = this;
|
|
1681
1729
|
return tslib_1.__generator(this, function (_b) {
|
|
1682
1730
|
switch (_b.label) {
|
|
@@ -1687,42 +1735,50 @@ var MysqlQueryRunner = /** @class */ (function (_super) {
|
|
|
1687
1735
|
return [4 /*yield*/, this.getCurrentDatabase()];
|
|
1688
1736
|
case 1:
|
|
1689
1737
|
currentDatabase = _b.sent();
|
|
1690
|
-
|
|
1738
|
+
statsSubquerySql = tableNames.map(function (tableName) {
|
|
1691
1739
|
var _a = tslib_1.__read(tableName.split("."), 2), database = _a[0], name = _a[1];
|
|
1692
1740
|
if (!name) {
|
|
1693
1741
|
name = database;
|
|
1694
1742
|
database = _this.driver.database || currentDatabase;
|
|
1695
1743
|
}
|
|
1696
|
-
return "
|
|
1697
|
-
}).join("
|
|
1698
|
-
|
|
1699
|
-
columnsSql = "SELECT * FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE " + tablesCondition;
|
|
1700
|
-
primaryKeySql = "SELECT * FROM `INFORMATION_SCHEMA`.`KEY_COLUMN_USAGE` WHERE `CONSTRAINT_NAME` = 'PRIMARY' AND (" + tablesCondition + ")";
|
|
1701
|
-
collationsSql = "SELECT `SCHEMA_NAME`, `DEFAULT_CHARACTER_SET_NAME` as `CHARSET`, `DEFAULT_COLLATION_NAME` AS `COLLATION` FROM `INFORMATION_SCHEMA`.`SCHEMATA`";
|
|
1702
|
-
indicesCondition = tableNames.map(function (tableName) {
|
|
1744
|
+
return "\n SELECT\n *\n FROM `INFORMATION_SCHEMA`.`STATISTICS`\n WHERE\n `TABLE_SCHEMA` = '" + database + "'\n AND\n `TABLE_NAME` = '" + name + "'\n ";
|
|
1745
|
+
}).join(" UNION ");
|
|
1746
|
+
kcuSubquerySql = tableNames.map(function (tableName) {
|
|
1703
1747
|
var _a = tslib_1.__read(tableName.split("."), 2), database = _a[0], name = _a[1];
|
|
1704
1748
|
if (!name) {
|
|
1705
1749
|
name = database;
|
|
1706
1750
|
database = _this.driver.database || currentDatabase;
|
|
1707
1751
|
}
|
|
1708
|
-
return "
|
|
1709
|
-
}).join("
|
|
1710
|
-
|
|
1711
|
-
"LEFT JOIN `INFORMATION_SCHEMA`.`REFERENTIAL_CONSTRAINTS` `rc` ON `s`.`INDEX_NAME` = `rc`.`CONSTRAINT_NAME` AND `s`.`TABLE_SCHEMA` = `rc`.`CONSTRAINT_SCHEMA`" +
|
|
1712
|
-
("WHERE (" + indicesCondition + ") AND `s`.`INDEX_NAME` != 'PRIMARY' AND `rc`.`CONSTRAINT_NAME` IS NULL");
|
|
1713
|
-
foreignKeysCondition = tableNames.map(function (tableName) {
|
|
1752
|
+
return "\n SELECT\n *\n FROM `INFORMATION_SCHEMA`.`KEY_COLUMN_USAGE` `kcu`\n WHERE\n `kcu`.`TABLE_SCHEMA` = '" + database + "'\n AND\n `kcu`.`TABLE_NAME` = '" + name + "'\n ";
|
|
1753
|
+
}).join(" UNION ");
|
|
1754
|
+
rcSubquerySql = tableNames.map(function (tableName) {
|
|
1714
1755
|
var _a = tslib_1.__read(tableName.split("."), 2), database = _a[0], name = _a[1];
|
|
1715
1756
|
if (!name) {
|
|
1716
1757
|
name = database;
|
|
1717
1758
|
database = _this.driver.database || currentDatabase;
|
|
1718
1759
|
}
|
|
1719
|
-
return "
|
|
1720
|
-
}).join("
|
|
1721
|
-
|
|
1722
|
-
"
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1760
|
+
return "\n SELECT\n *\n FROM `INFORMATION_SCHEMA`.`REFERENTIAL_CONSTRAINTS`\n WHERE\n `CONSTRAINT_SCHEMA` = '" + database + "'\n AND\n `TABLE_NAME` = '" + name + "'\n ";
|
|
1761
|
+
}).join(" UNION ");
|
|
1762
|
+
tablesSql = tableNames.map(function (tableName) {
|
|
1763
|
+
var _a = tslib_1.__read(tableName.split("."), 2), database = _a[0], name = _a[1];
|
|
1764
|
+
if (!name) {
|
|
1765
|
+
name = database;
|
|
1766
|
+
database = _this.driver.database || currentDatabase;
|
|
1767
|
+
}
|
|
1768
|
+
return "\n SELECT\n `TABLE_SCHEMA`,\n `TABLE_NAME`\n FROM\n `INFORMATION_SCHEMA`.`TABLES`\n WHERE\n `TABLE_SCHEMA` = '" + database + "'\n AND\n `TABLE_NAME` = '" + name + "'\n ";
|
|
1769
|
+
}).join(" UNION ");
|
|
1770
|
+
columnsSql = tableNames.map(function (tableName) {
|
|
1771
|
+
var _a = tslib_1.__read(tableName.split("."), 2), database = _a[0], name = _a[1];
|
|
1772
|
+
if (!name) {
|
|
1773
|
+
name = database;
|
|
1774
|
+
database = _this.driver.database || currentDatabase;
|
|
1775
|
+
}
|
|
1776
|
+
return "\n SELECT\n *\n FROM\n `INFORMATION_SCHEMA`.`COLUMNS`\n WHERE\n `TABLE_SCHEMA` = '" + database + "'\n AND\n `TABLE_NAME` = '" + name + "'\n ";
|
|
1777
|
+
}).join(" UNION ");
|
|
1778
|
+
collationsSql = "\n SELECT\n `SCHEMA_NAME`,\n `DEFAULT_CHARACTER_SET_NAME` as `CHARSET`,\n `DEFAULT_COLLATION_NAME` AS `COLLATION`\n FROM `INFORMATION_SCHEMA`.`SCHEMATA`\n ";
|
|
1779
|
+
primaryKeySql = "SELECT * FROM (" + kcuSubquerySql + ") `kcu` WHERE `CONSTRAINT_NAME` = 'PRIMARY'";
|
|
1780
|
+
indicesSql = "\n SELECT\n `s`.*\n FROM (" + statsSubquerySql + ") `s`\n LEFT JOIN (" + rcSubquerySql + ") `rc`\n ON\n `s`.`INDEX_NAME` = `rc`.`CONSTRAINT_NAME`\n AND\n `s`.`TABLE_SCHEMA` = `rc`.`CONSTRAINT_SCHEMA`\n WHERE\n `s`.`INDEX_NAME` != 'PRIMARY'\n AND\n `rc`.`CONSTRAINT_NAME` IS NULL\n ";
|
|
1781
|
+
foreignKeysSql = "\n SELECT\n `kcu`.`TABLE_SCHEMA`,\n `kcu`.`TABLE_NAME`,\n `kcu`.`CONSTRAINT_NAME`,\n `kcu`.`COLUMN_NAME`,\n `kcu`.`REFERENCED_TABLE_SCHEMA`,\n `kcu`.`REFERENCED_TABLE_NAME`,\n `kcu`.`REFERENCED_COLUMN_NAME`,\n `rc`.`DELETE_RULE` `ON_DELETE`,\n `rc`.`UPDATE_RULE` `ON_UPDATE`\n FROM (" + kcuSubquerySql + ") `kcu`\n INNER JOIN (" + rcSubquerySql + ") `rc`\n ON\n `rc`.`CONSTRAINT_SCHEMA` = `kcu`.`CONSTRAINT_SCHEMA`\n AND\n `rc`.`TABLE_NAME` = `kcu`.`TABLE_NAME`\n AND\n `rc`.`CONSTRAINT_NAME` = `kcu`.`CONSTRAINT_NAME`\n ";
|
|
1726
1782
|
return [4 /*yield*/, Promise.all([
|
|
1727
1783
|
this.query(tablesSql),
|
|
1728
1784
|
this.query(columnsSql),
|
|
@@ -1818,7 +1874,7 @@ var MysqlQueryRunner = /** @class */ (function (_super) {
|
|
|
1818
1874
|
tableColumn.isGenerated = dbColumn["EXTRA"].indexOf("auto_increment") !== -1;
|
|
1819
1875
|
if (tableColumn.isGenerated)
|
|
1820
1876
|
tableColumn.generationStrategy = "increment";
|
|
1821
|
-
tableColumn.comment = dbColumn["COLUMN_COMMENT"];
|
|
1877
|
+
tableColumn.comment = (typeof dbColumn["COLUMN_COMMENT"] === "string" && dbColumn["COLUMN_COMMENT"].length === 0) ? undefined : dbColumn["COLUMN_COMMENT"];
|
|
1822
1878
|
if (dbColumn["CHARACTER_SET_NAME"])
|
|
1823
1879
|
tableColumn.charset = dbColumn["CHARACTER_SET_NAME"] === defaultCharset ? undefined : dbColumn["CHARACTER_SET_NAME"];
|
|
1824
1880
|
if (dbColumn["COLLATION_NAME"])
|
|
@@ -2095,6 +2151,19 @@ var MysqlQueryRunner = /** @class */ (function (_super) {
|
|
|
2095
2151
|
tableName: tableName.indexOf(".") !== -1 ? tableName.split(".")[1] : tableName
|
|
2096
2152
|
};
|
|
2097
2153
|
};
|
|
2154
|
+
/**
|
|
2155
|
+
* Escapes a given comment so it's safe to include in a query.
|
|
2156
|
+
*/
|
|
2157
|
+
MysqlQueryRunner.prototype.escapeComment = function (comment) {
|
|
2158
|
+
if (comment === undefined || comment.length === 0) {
|
|
2159
|
+
return "''";
|
|
2160
|
+
}
|
|
2161
|
+
comment = comment
|
|
2162
|
+
.replace("\\", "\\\\") // MySQL allows escaping characters via backslashes
|
|
2163
|
+
.replace("'", "''")
|
|
2164
|
+
.replace("\0", ""); // Null bytes aren't allowed in comments
|
|
2165
|
+
return "'" + comment + "'";
|
|
2166
|
+
};
|
|
2098
2167
|
/**
|
|
2099
2168
|
* Escapes given table or view path.
|
|
2100
2169
|
*/
|
|
@@ -2137,8 +2206,8 @@ var MysqlQueryRunner = /** @class */ (function (_super) {
|
|
|
2137
2206
|
c += " PRIMARY KEY";
|
|
2138
2207
|
if (column.isGenerated && column.generationStrategy === "increment") // don't use skipPrimary here since updates can update already exist primary without auto inc.
|
|
2139
2208
|
c += " AUTO_INCREMENT";
|
|
2140
|
-
if (column.comment)
|
|
2141
|
-
c += " COMMENT
|
|
2209
|
+
if (column.comment !== undefined && column.comment.length > 0)
|
|
2210
|
+
c += " COMMENT " + this.escapeComment(column.comment);
|
|
2142
2211
|
if (column.default !== undefined && column.default !== null)
|
|
2143
2212
|
c += " DEFAULT " + column.default;
|
|
2144
2213
|
if (column.onUpdate)
|