typeorm 0.2.40-dev.ae858ad → 0.2.41-dev.15ad5ac
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/browser/cache/DbQueryResultCache.js +12 -3
- package/browser/cache/DbQueryResultCache.js.map +1 -1
- package/browser/decorator/columns/PrimaryGeneratedColumn.d.ts +1 -0
- package/browser/decorator/columns/PrimaryGeneratedColumn.js +1 -1
- package/browser/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
- package/browser/decorator/options/ColumnCommonOptions.d.ts +1 -1
- package/browser/decorator/options/ColumnCommonOptions.js.map +1 -1
- package/browser/driver/Driver.d.ts +5 -0
- package/browser/driver/Driver.js.map +1 -1
- package/browser/driver/aurora-data-api/AuroraDataApiDriver.d.ts +4 -0
- package/browser/driver/aurora-data-api/AuroraDataApiDriver.js +4 -0
- package/browser/driver/aurora-data-api/AuroraDataApiDriver.js.map +1 -1
- package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js +33 -39
- package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachDriver.d.ts +4 -0
- package/browser/driver/cockroachdb/CockroachDriver.js +4 -0
- package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachQueryRunner.js +24 -30
- package/browser/driver/cockroachdb/CockroachQueryRunner.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/MongoQueryRunner.d.ts +2 -0
- package/browser/driver/mongodb/MongoQueryRunner.js +3 -0
- package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
- package/browser/driver/mysql/MysqlDriver.d.ts +4 -0
- package/browser/driver/mysql/MysqlDriver.js +10 -3
- package/browser/driver/mysql/MysqlDriver.js.map +1 -1
- package/browser/driver/mysql/MysqlQueryRunner.js +37 -39
- package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/browser/driver/oracle/OracleDriver.js +1 -1
- package/browser/driver/oracle/OracleDriver.js.map +1 -1
- package/browser/driver/oracle/OracleQueryRunner.js +13 -24
- package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/browser/driver/postgres/PostgresDriver.d.ts +5 -0
- package/browser/driver/postgres/PostgresDriver.js +20 -7
- package/browser/driver/postgres/PostgresDriver.js.map +1 -1
- package/browser/driver/postgres/PostgresQueryRunner.d.ts +5 -0
- package/browser/driver/postgres/PostgresQueryRunner.js +333 -143
- package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/browser/driver/sap/SapQueryRunner.js +36 -42
- package/browser/driver/sap/SapQueryRunner.js.map +1 -1
- package/browser/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +4 -0
- package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +4 -0
- package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +8 -14
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerQueryRunner.js +31 -33
- package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/browser/driver/types/MetadataTableType.d.ts +5 -0
- package/browser/driver/types/MetadataTableType.js +8 -0
- package/browser/driver/types/MetadataTableType.js.map +1 -0
- package/browser/driver/types/UpsertType.d.ts +1 -0
- package/browser/driver/types/UpsertType.js +3 -0
- package/browser/driver/types/UpsertType.js.map +1 -0
- package/browser/entity-manager/EntityManager.d.ts +2 -0
- package/browser/entity-manager/EntityManager.js +42 -1
- package/browser/entity-manager/EntityManager.js.map +1 -1
- package/browser/find-options/FindConditions.d.ts +6 -2
- package/browser/find-options/FindConditions.js.map +1 -1
- package/browser/find-options/FindTreeOptions.d.ts +5 -1
- package/browser/find-options/FindTreeOptions.js.map +1 -1
- package/browser/metadata/EntityMetadata.d.ts +4 -0
- package/browser/metadata/EntityMetadata.js +14 -0
- package/browser/metadata/EntityMetadata.js.map +1 -1
- package/browser/migration/MigrationExecutor.js +55 -48
- package/browser/migration/MigrationExecutor.js.map +1 -1
- package/browser/query-builder/InsertQueryBuilder.js +8 -2
- package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
- package/browser/query-builder/SelectQueryBuilder.d.ts +1 -1
- package/browser/query-builder/SelectQueryBuilder.js +4 -20
- package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
- package/browser/query-runner/BaseQueryRunner.d.ts +23 -0
- package/browser/query-runner/BaseQueryRunner.js +37 -0
- package/browser/query-runner/BaseQueryRunner.js.map +1 -1
- package/browser/query-runner/QueryRunner.d.ts +5 -0
- package/browser/query-runner/QueryRunner.js.map +1 -1
- package/browser/repository/BaseEntity.d.ts +7 -0
- package/browser/repository/BaseEntity.js +8 -0
- package/browser/repository/BaseEntity.js.map +1 -1
- package/browser/repository/FindTreesOptions.d.ts +9 -0
- package/browser/repository/FindTreesOptions.js +3 -0
- package/browser/repository/FindTreesOptions.js.map +1 -0
- package/browser/repository/Repository.d.ts +7 -0
- package/browser/repository/Repository.js +8 -0
- package/browser/repository/Repository.js.map +1 -1
- package/browser/repository/TreeRepository.d.ts +4 -1
- package/browser/repository/TreeRepository.js +8 -4
- package/browser/repository/TreeRepository.js.map +1 -1
- package/browser/repository/UpsertOptions.d.ts +6 -0
- package/browser/repository/UpsertOptions.js +3 -0
- package/browser/repository/UpsertOptions.js.map +1 -0
- package/browser/schema-builder/RdbmsSchemaBuilder.d.ts +5 -1
- package/browser/schema-builder/RdbmsSchemaBuilder.js +58 -49
- package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
- package/browser/schema-builder/options/TableColumnOptions.d.ts +1 -1
- package/browser/schema-builder/options/TableColumnOptions.js.map +1 -1
- package/browser/schema-builder/table/TableColumn.d.ts +1 -1
- package/browser/schema-builder/table/TableColumn.js.map +1 -1
- package/browser/util/OrmUtils.d.ts +1 -0
- package/browser/util/OrmUtils.js +11 -0
- package/browser/util/OrmUtils.js.map +1 -1
- package/cache/DbQueryResultCache.js +12 -3
- package/cache/DbQueryResultCache.js.map +1 -1
- package/decorator/columns/PrimaryGeneratedColumn.d.ts +1 -0
- package/decorator/columns/PrimaryGeneratedColumn.js +1 -1
- package/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
- package/decorator/options/ColumnCommonOptions.d.ts +1 -1
- package/decorator/options/ColumnCommonOptions.js.map +1 -1
- package/driver/Driver.d.ts +5 -0
- package/driver/Driver.js.map +1 -1
- package/driver/aurora-data-api/AuroraDataApiDriver.d.ts +4 -0
- package/driver/aurora-data-api/AuroraDataApiDriver.js +4 -0
- package/driver/aurora-data-api/AuroraDataApiDriver.js.map +1 -1
- package/driver/aurora-data-api/AuroraDataApiQueryRunner.js +33 -39
- package/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
- package/driver/cockroachdb/CockroachDriver.d.ts +4 -0
- package/driver/cockroachdb/CockroachDriver.js +4 -0
- package/driver/cockroachdb/CockroachDriver.js.map +1 -1
- package/driver/cockroachdb/CockroachQueryRunner.js +24 -30
- package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/driver/mongodb/MongoConnectionOptions.d.ts +4 -0
- package/driver/mongodb/MongoConnectionOptions.js.map +1 -1
- package/driver/mongodb/MongoQueryRunner.d.ts +2 -0
- package/driver/mongodb/MongoQueryRunner.js +3 -0
- package/driver/mongodb/MongoQueryRunner.js.map +1 -1
- package/driver/mysql/MysqlDriver.d.ts +4 -0
- package/driver/mysql/MysqlDriver.js +10 -3
- package/driver/mysql/MysqlDriver.js.map +1 -1
- package/driver/mysql/MysqlQueryRunner.js +37 -39
- package/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/driver/oracle/OracleDriver.js +1 -1
- package/driver/oracle/OracleDriver.js.map +1 -1
- package/driver/oracle/OracleQueryRunner.js +13 -24
- package/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/driver/postgres/PostgresDriver.d.ts +5 -0
- package/driver/postgres/PostgresDriver.js +20 -7
- package/driver/postgres/PostgresDriver.js.map +1 -1
- package/driver/postgres/PostgresQueryRunner.d.ts +5 -0
- package/driver/postgres/PostgresQueryRunner.js +333 -143
- package/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/driver/sap/SapQueryRunner.js +36 -42
- package/driver/sap/SapQueryRunner.js.map +1 -1
- package/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +4 -0
- package/driver/sqlite-abstract/AbstractSqliteDriver.js +4 -0
- package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +8 -14
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/driver/sqlserver/SqlServerQueryRunner.js +31 -33
- package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/driver/types/MetadataTableType.d.ts +5 -0
- package/driver/types/MetadataTableType.js +11 -0
- package/driver/types/MetadataTableType.js.map +1 -0
- package/driver/types/UpsertType.d.ts +1 -0
- package/driver/types/UpsertType.js +4 -0
- package/driver/types/UpsertType.js.map +1 -0
- package/entity-manager/EntityManager.d.ts +2 -0
- package/entity-manager/EntityManager.js +41 -0
- package/entity-manager/EntityManager.js.map +1 -1
- package/find-options/FindConditions.d.ts +6 -2
- package/find-options/FindConditions.js.map +1 -1
- package/find-options/FindTreeOptions.d.ts +5 -1
- package/find-options/FindTreeOptions.js.map +1 -1
- package/metadata/EntityMetadata.d.ts +4 -0
- package/metadata/EntityMetadata.js +14 -0
- package/metadata/EntityMetadata.js.map +1 -1
- package/migration/MigrationExecutor.js +55 -48
- package/migration/MigrationExecutor.js.map +1 -1
- package/package.json +1 -1
- package/query-builder/InsertQueryBuilder.js +11 -5
- package/query-builder/InsertQueryBuilder.js.map +1 -1
- package/query-builder/SelectQueryBuilder.d.ts +1 -1
- package/query-builder/SelectQueryBuilder.js +4 -20
- package/query-builder/SelectQueryBuilder.js.map +1 -1
- package/query-runner/BaseQueryRunner.d.ts +23 -0
- package/query-runner/BaseQueryRunner.js +37 -0
- package/query-runner/BaseQueryRunner.js.map +1 -1
- package/query-runner/QueryRunner.d.ts +5 -0
- package/query-runner/QueryRunner.js.map +1 -1
- package/repository/BaseEntity.d.ts +7 -0
- package/repository/BaseEntity.js +8 -0
- package/repository/BaseEntity.js.map +1 -1
- package/repository/FindTreesOptions.d.ts +9 -0
- package/repository/FindTreesOptions.js +4 -0
- package/repository/FindTreesOptions.js.map +1 -0
- package/repository/Repository.d.ts +7 -0
- package/repository/Repository.js +8 -0
- package/repository/Repository.js.map +1 -1
- package/repository/TreeRepository.d.ts +4 -1
- package/repository/TreeRepository.js +7 -3
- package/repository/TreeRepository.js.map +1 -1
- package/repository/UpsertOptions.d.ts +6 -0
- package/repository/UpsertOptions.js +4 -0
- package/repository/UpsertOptions.js.map +1 -0
- package/schema-builder/RdbmsSchemaBuilder.d.ts +5 -1
- package/schema-builder/RdbmsSchemaBuilder.js +58 -49
- package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
- package/schema-builder/options/TableColumnOptions.d.ts +1 -1
- package/schema-builder/options/TableColumnOptions.js.map +1 -1
- package/schema-builder/table/TableColumn.d.ts +1 -1
- package/schema-builder/table/TableColumn.js.map +1 -1
- package/util/OrmUtils.d.ts +1 -0
- package/util/OrmUtils.js +11 -0
- package/util/OrmUtils.js.map +1 -1
|
@@ -21,6 +21,7 @@ var Query_1 = require("../Query");
|
|
|
21
21
|
var VersionUtils_1 = require("../../util/VersionUtils");
|
|
22
22
|
var error_1 = require("../../error");
|
|
23
23
|
var QueryResult_1 = require("../../query-runner/QueryResult");
|
|
24
|
+
var MetadataTableType_1 = require("../types/MetadataTableType");
|
|
24
25
|
/**
|
|
25
26
|
* Runs queries on a single postgres database connection.
|
|
26
27
|
*/
|
|
@@ -222,23 +223,25 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
222
223
|
if (maxQueryExecutionTime && queryExecutionTime > maxQueryExecutionTime)
|
|
223
224
|
this.driver.connection.logger.logQuerySlow(queryExecutionTime, query, parameters, this);
|
|
224
225
|
result = new QueryResult_1.QueryResult();
|
|
225
|
-
if (raw
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
226
|
+
if (raw) {
|
|
227
|
+
if (raw.hasOwnProperty('rows')) {
|
|
228
|
+
result.records = raw.rows;
|
|
229
|
+
}
|
|
230
|
+
if (raw.hasOwnProperty('rowCount')) {
|
|
231
|
+
result.affected = raw.rowCount;
|
|
232
|
+
}
|
|
233
|
+
switch (raw.command) {
|
|
234
|
+
case "DELETE":
|
|
235
|
+
case "UPDATE":
|
|
236
|
+
// for UPDATE and DELETE query additionally return number of affected rows
|
|
237
|
+
result.raw = [raw.rows, raw.rowCount];
|
|
238
|
+
break;
|
|
239
|
+
default:
|
|
240
|
+
result.raw = raw.rows;
|
|
241
|
+
}
|
|
242
|
+
if (!useStructuredResult) {
|
|
243
|
+
return [2 /*return*/, result.raw];
|
|
244
|
+
}
|
|
242
245
|
}
|
|
243
246
|
return [2 /*return*/, result];
|
|
244
247
|
case 4:
|
|
@@ -509,35 +512,35 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
509
512
|
if (createForeignKeys === void 0) { createForeignKeys = true; }
|
|
510
513
|
if (createIndices === void 0) { createIndices = true; }
|
|
511
514
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
512
|
-
var isTableExist, upQueries, downQueries, enumColumns, createdEnumTypes, enumColumns_1, enumColumns_1_1, column, hasEnum, enumName, e_1_1;
|
|
513
|
-
var e_1, _a;
|
|
515
|
+
var isTableExist, upQueries, downQueries, enumColumns, createdEnumTypes, enumColumns_1, enumColumns_1_1, column, hasEnum, enumName, e_1_1, generatedColumns, generatedColumns_1, generatedColumns_1_1, column, tableNameWithSchema, tableName, schema, insertQuery, deleteQuery, e_2_1;
|
|
516
|
+
var e_1, _a, e_2, _b;
|
|
514
517
|
var _this = this;
|
|
515
|
-
return (0, tslib_1.__generator)(this, function (
|
|
516
|
-
switch (
|
|
518
|
+
return (0, tslib_1.__generator)(this, function (_c) {
|
|
519
|
+
switch (_c.label) {
|
|
517
520
|
case 0:
|
|
518
521
|
if (!ifNotExist) return [3 /*break*/, 2];
|
|
519
522
|
return [4 /*yield*/, this.hasTable(table)];
|
|
520
523
|
case 1:
|
|
521
|
-
isTableExist =
|
|
524
|
+
isTableExist = _c.sent();
|
|
522
525
|
if (isTableExist)
|
|
523
526
|
return [2 /*return*/, Promise.resolve()];
|
|
524
|
-
|
|
527
|
+
_c.label = 2;
|
|
525
528
|
case 2:
|
|
526
529
|
upQueries = [];
|
|
527
530
|
downQueries = [];
|
|
528
531
|
enumColumns = table.columns.filter(function (column) { return column.type === "enum" || column.type === "simple-enum"; });
|
|
529
532
|
createdEnumTypes = [];
|
|
530
|
-
|
|
533
|
+
_c.label = 3;
|
|
531
534
|
case 3:
|
|
532
|
-
|
|
535
|
+
_c.trys.push([3, 8, 9, 10]);
|
|
533
536
|
enumColumns_1 = (0, tslib_1.__values)(enumColumns), enumColumns_1_1 = enumColumns_1.next();
|
|
534
|
-
|
|
537
|
+
_c.label = 4;
|
|
535
538
|
case 4:
|
|
536
539
|
if (!!enumColumns_1_1.done) return [3 /*break*/, 7];
|
|
537
540
|
column = enumColumns_1_1.value;
|
|
538
541
|
return [4 /*yield*/, this.hasEnumType(table, column)];
|
|
539
542
|
case 5:
|
|
540
|
-
hasEnum =
|
|
543
|
+
hasEnum = _c.sent();
|
|
541
544
|
enumName = this.buildEnumName(table, column);
|
|
542
545
|
// if enum with the same "enumName" is defined more then once, me must prevent double creation
|
|
543
546
|
if (!hasEnum && createdEnumTypes.indexOf(enumName) === -1) {
|
|
@@ -545,13 +548,13 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
545
548
|
upQueries.push(this.createEnumTypeSql(table, column, enumName));
|
|
546
549
|
downQueries.push(this.dropEnumTypeSql(table, column, enumName));
|
|
547
550
|
}
|
|
548
|
-
|
|
551
|
+
_c.label = 6;
|
|
549
552
|
case 6:
|
|
550
553
|
enumColumns_1_1 = enumColumns_1.next();
|
|
551
554
|
return [3 /*break*/, 4];
|
|
552
555
|
case 7: return [3 /*break*/, 10];
|
|
553
556
|
case 8:
|
|
554
|
-
e_1_1 =
|
|
557
|
+
e_1_1 = _c.sent();
|
|
555
558
|
e_1 = { error: e_1_1 };
|
|
556
559
|
return [3 /*break*/, 10];
|
|
557
560
|
case 9:
|
|
@@ -561,6 +564,54 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
561
564
|
finally { if (e_1) throw e_1.error; }
|
|
562
565
|
return [7 /*endfinally*/];
|
|
563
566
|
case 10:
|
|
567
|
+
generatedColumns = table.columns.filter(function (column) { return column.generatedType === "STORED" && column.asExpression; });
|
|
568
|
+
_c.label = 11;
|
|
569
|
+
case 11:
|
|
570
|
+
_c.trys.push([11, 16, 17, 18]);
|
|
571
|
+
generatedColumns_1 = (0, tslib_1.__values)(generatedColumns), generatedColumns_1_1 = generatedColumns_1.next();
|
|
572
|
+
_c.label = 12;
|
|
573
|
+
case 12:
|
|
574
|
+
if (!!generatedColumns_1_1.done) return [3 /*break*/, 15];
|
|
575
|
+
column = generatedColumns_1_1.value;
|
|
576
|
+
return [4 /*yield*/, this.getTableNameWithSchema(table.name)];
|
|
577
|
+
case 13:
|
|
578
|
+
tableNameWithSchema = (_c.sent()).split('.');
|
|
579
|
+
tableName = tableNameWithSchema[1];
|
|
580
|
+
schema = tableNameWithSchema[0];
|
|
581
|
+
insertQuery = this.insertTypeormMetadataSql({
|
|
582
|
+
database: this.driver.database,
|
|
583
|
+
schema: schema,
|
|
584
|
+
table: tableName,
|
|
585
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
586
|
+
name: column.name,
|
|
587
|
+
value: column.asExpression
|
|
588
|
+
});
|
|
589
|
+
deleteQuery = this.deleteTypeormMetadataSql({
|
|
590
|
+
database: this.driver.database,
|
|
591
|
+
schema: schema,
|
|
592
|
+
table: tableName,
|
|
593
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
594
|
+
name: column.name
|
|
595
|
+
});
|
|
596
|
+
upQueries.push(deleteQuery);
|
|
597
|
+
upQueries.push(insertQuery);
|
|
598
|
+
downQueries.push(deleteQuery);
|
|
599
|
+
_c.label = 14;
|
|
600
|
+
case 14:
|
|
601
|
+
generatedColumns_1_1 = generatedColumns_1.next();
|
|
602
|
+
return [3 /*break*/, 12];
|
|
603
|
+
case 15: return [3 /*break*/, 18];
|
|
604
|
+
case 16:
|
|
605
|
+
e_2_1 = _c.sent();
|
|
606
|
+
e_2 = { error: e_2_1 };
|
|
607
|
+
return [3 /*break*/, 18];
|
|
608
|
+
case 17:
|
|
609
|
+
try {
|
|
610
|
+
if (generatedColumns_1_1 && !generatedColumns_1_1.done && (_b = generatedColumns_1.return)) _b.call(generatedColumns_1);
|
|
611
|
+
}
|
|
612
|
+
finally { if (e_2) throw e_2.error; }
|
|
613
|
+
return [7 /*endfinally*/];
|
|
614
|
+
case 18:
|
|
564
615
|
upQueries.push(this.createTableSql(table, createForeignKeys));
|
|
565
616
|
downQueries.push(this.dropTableSql(table));
|
|
566
617
|
// if createForeignKeys is true, we must drop created foreign keys in down query.
|
|
@@ -577,8 +628,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
577
628
|
});
|
|
578
629
|
}
|
|
579
630
|
return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
|
|
580
|
-
case
|
|
581
|
-
|
|
631
|
+
case 19:
|
|
632
|
+
_c.sent();
|
|
582
633
|
return [2 /*return*/];
|
|
583
634
|
}
|
|
584
635
|
});
|
|
@@ -696,8 +747,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
696
747
|
*/
|
|
697
748
|
PostgresQueryRunner.prototype.renameTable = function (oldTableOrName, newTableName) {
|
|
698
749
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
699
|
-
var upQueries, downQueries, oldTable, _a, newTable, _b, schemaName, oldTableName, columnNames, oldPkName, newPkName, enumColumns, enumColumns_2, enumColumns_2_1, column, oldEnumType,
|
|
700
|
-
var
|
|
750
|
+
var upQueries, downQueries, oldTable, _a, newTable, _b, schemaName, oldTableName, columnNames, oldPkName, newPkName, enumColumns, enumColumns_2, enumColumns_2_1, column, oldEnumType, e_3_1;
|
|
751
|
+
var e_3, _c;
|
|
701
752
|
var _this = this;
|
|
702
753
|
return (0, tslib_1.__generator)(this, function (_d) {
|
|
703
754
|
switch (_d.label) {
|
|
@@ -795,14 +846,14 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
795
846
|
return [3 /*break*/, 5];
|
|
796
847
|
case 8: return [3 /*break*/, 11];
|
|
797
848
|
case 9:
|
|
798
|
-
|
|
799
|
-
|
|
849
|
+
e_3_1 = _d.sent();
|
|
850
|
+
e_3 = { error: e_3_1 };
|
|
800
851
|
return [3 /*break*/, 11];
|
|
801
852
|
case 10:
|
|
802
853
|
try {
|
|
803
854
|
if (enumColumns_2_1 && !enumColumns_2_1.done && (_c = enumColumns_2.return)) _c.call(enumColumns_2);
|
|
804
855
|
}
|
|
805
|
-
finally { if (
|
|
856
|
+
finally { if (e_3) throw e_3.error; }
|
|
806
857
|
return [7 /*endfinally*/];
|
|
807
858
|
case 11: return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
|
|
808
859
|
case 12:
|
|
@@ -817,7 +868,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
817
868
|
*/
|
|
818
869
|
PostgresQueryRunner.prototype.addColumn = function (tableOrName, column) {
|
|
819
870
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
820
|
-
var table, _a, clonedTable, upQueries, downQueries, hasEnum, primaryColumns, pkName_1, columnNames_1, pkName, columnNames, columnIndex, uniqueConstraint;
|
|
871
|
+
var table, _a, clonedTable, upQueries, downQueries, hasEnum, primaryColumns, pkName_1, columnNames_1, pkName, columnNames, columnIndex, uniqueConstraint, tableNameWithSchema, tableName, schema, insertQuery, deleteQuery;
|
|
821
872
|
return (0, tslib_1.__generator)(this, function (_b) {
|
|
822
873
|
switch (_b.label) {
|
|
823
874
|
case 0:
|
|
@@ -876,13 +927,39 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
876
927
|
upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + uniqueConstraint.name + "\" UNIQUE (\"" + column.name + "\")"));
|
|
877
928
|
downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + uniqueConstraint.name + "\""));
|
|
878
929
|
}
|
|
930
|
+
if (!(column.generatedType === "STORED" && column.asExpression)) return [3 /*break*/, 7];
|
|
931
|
+
return [4 /*yield*/, this.getTableNameWithSchema(table.name)];
|
|
932
|
+
case 6:
|
|
933
|
+
tableNameWithSchema = (_b.sent()).split('.');
|
|
934
|
+
tableName = tableNameWithSchema[1];
|
|
935
|
+
schema = tableNameWithSchema[0];
|
|
936
|
+
insertQuery = this.insertTypeormMetadataSql({
|
|
937
|
+
database: this.driver.database,
|
|
938
|
+
schema: schema,
|
|
939
|
+
table: tableName,
|
|
940
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
941
|
+
name: column.name,
|
|
942
|
+
value: column.asExpression
|
|
943
|
+
});
|
|
944
|
+
deleteQuery = this.deleteTypeormMetadataSql({
|
|
945
|
+
database: this.driver.database,
|
|
946
|
+
schema: schema,
|
|
947
|
+
table: tableName,
|
|
948
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
949
|
+
name: column.name
|
|
950
|
+
});
|
|
951
|
+
upQueries.push(deleteQuery);
|
|
952
|
+
upQueries.push(insertQuery);
|
|
953
|
+
downQueries.push(deleteQuery);
|
|
954
|
+
_b.label = 7;
|
|
955
|
+
case 7:
|
|
879
956
|
// create column's comment
|
|
880
957
|
if (column.comment) {
|
|
881
958
|
upQueries.push(new Query_1.Query("COMMENT ON COLUMN " + this.escapePath(table) + ".\"" + column.name + "\" IS " + this.escapeComment(column.comment)));
|
|
882
959
|
downQueries.push(new Query_1.Query("COMMENT ON COLUMN " + this.escapePath(table) + ".\"" + column.name + "\" IS " + this.escapeComment(column.comment)));
|
|
883
960
|
}
|
|
884
961
|
return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
|
|
885
|
-
case
|
|
962
|
+
case 8:
|
|
886
963
|
_b.sent();
|
|
887
964
|
clonedTable.addColumn(column);
|
|
888
965
|
this.replaceCachedTable(table, clonedTable);
|
|
@@ -896,8 +973,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
896
973
|
*/
|
|
897
974
|
PostgresQueryRunner.prototype.addColumns = function (tableOrName, columns) {
|
|
898
975
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
899
|
-
var columns_1, columns_1_1, column,
|
|
900
|
-
var
|
|
976
|
+
var columns_1, columns_1_1, column, e_4_1;
|
|
977
|
+
var e_4, _a;
|
|
901
978
|
return (0, tslib_1.__generator)(this, function (_b) {
|
|
902
979
|
switch (_b.label) {
|
|
903
980
|
case 0:
|
|
@@ -916,14 +993,14 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
916
993
|
return [3 /*break*/, 1];
|
|
917
994
|
case 4: return [3 /*break*/, 7];
|
|
918
995
|
case 5:
|
|
919
|
-
|
|
920
|
-
|
|
996
|
+
e_4_1 = _b.sent();
|
|
997
|
+
e_4 = { error: e_4_1 };
|
|
921
998
|
return [3 /*break*/, 7];
|
|
922
999
|
case 6:
|
|
923
1000
|
try {
|
|
924
1001
|
if (columns_1_1 && !columns_1_1.done && (_a = columns_1.return)) _a.call(columns_1);
|
|
925
1002
|
}
|
|
926
|
-
finally { if (
|
|
1003
|
+
finally { if (e_4) throw e_4.error; }
|
|
927
1004
|
return [7 /*endfinally*/];
|
|
928
1005
|
case 7: return [2 /*return*/];
|
|
929
1006
|
}
|
|
@@ -968,7 +1045,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
968
1045
|
*/
|
|
969
1046
|
PostgresQueryRunner.prototype.changeColumn = function (tableOrName, oldTableColumnOrName, newColumn) {
|
|
970
1047
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
971
|
-
var table, _a, clonedTable, upQueries, downQueries, defaultValueChanged, oldColumn, oldEnumType, primaryColumns, columnNames, oldPkName, newPkName, sequencePath, sequenceName, newSequencePath, newSequenceName, up, down, oldTableColumn, arraySuffix, newEnumName, oldEnumName, oldEnumNameWithoutSchema, oldEnumNameWithSchema_old, oldEnumNameWithoutSchema_old, upType, downType, primaryColumns, pkName, columnNames, column, pkName, columnNames, primaryColumn, column, pkName, columnNames, uniqueConstraint, uniqueConstraint;
|
|
1048
|
+
var table, _a, clonedTable, upQueries, downQueries, defaultValueChanged, oldColumn, oldEnumType, primaryColumns, columnNames, oldPkName, newPkName, sequencePath, sequenceName, newSequencePath, newSequenceName, up, down, oldTableColumn, arraySuffix, newEnumName, oldEnumName, oldEnumNameWithoutSchema, oldEnumNameWithSchema_old, oldEnumNameWithoutSchema_old, upType, downType, primaryColumns, pkName, columnNames, column, pkName, columnNames, primaryColumn, column, pkName, columnNames, uniqueConstraint, uniqueConstraint, tableNameWithSchema, tableName, schema;
|
|
972
1049
|
var _this = this;
|
|
973
1050
|
return (0, tslib_1.__generator)(this, function (_b) {
|
|
974
1051
|
switch (_b.label) {
|
|
@@ -991,7 +1068,11 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
991
1068
|
: table.columns.find(function (column) { return column.name === oldTableColumnOrName; });
|
|
992
1069
|
if (!oldColumn)
|
|
993
1070
|
throw new error_1.TypeORMError("Column \"" + oldTableColumnOrName + "\" was not found in the \"" + table.name + "\" table.");
|
|
994
|
-
if (!(oldColumn.type !== newColumn.type
|
|
1071
|
+
if (!(oldColumn.type !== newColumn.type
|
|
1072
|
+
|| oldColumn.length !== newColumn.length
|
|
1073
|
+
|| newColumn.isArray !== oldColumn.isArray
|
|
1074
|
+
|| (!oldColumn.generatedType && newColumn.generatedType === "STORED")
|
|
1075
|
+
|| (oldColumn.asExpression !== newColumn.asExpression && newColumn.generatedType === "STORED"))) return [3 /*break*/, 6];
|
|
995
1076
|
// To avoid data conversion, we just recreate column
|
|
996
1077
|
return [4 /*yield*/, this.dropColumn(table, oldColumn)];
|
|
997
1078
|
case 4:
|
|
@@ -1002,7 +1083,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
1002
1083
|
_b.sent();
|
|
1003
1084
|
// update cloned table
|
|
1004
1085
|
clonedTable = table.clone();
|
|
1005
|
-
return [3 /*break*/,
|
|
1086
|
+
return [3 /*break*/, 11];
|
|
1006
1087
|
case 6:
|
|
1007
1088
|
if (!(oldColumn.name !== newColumn.name)) return [3 /*break*/, 9];
|
|
1008
1089
|
// rename column
|
|
@@ -1188,7 +1269,9 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
1188
1269
|
downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + uniqueConstraint.name + "\" UNIQUE (\"" + newColumn.name + "\")"));
|
|
1189
1270
|
}
|
|
1190
1271
|
}
|
|
1191
|
-
if (oldColumn.isGenerated !== newColumn.isGenerated &&
|
|
1272
|
+
if (oldColumn.isGenerated !== newColumn.isGenerated &&
|
|
1273
|
+
newColumn.generationStrategy !== "uuid" &&
|
|
1274
|
+
newColumn.generationStrategy !== "identity") {
|
|
1192
1275
|
if (newColumn.isGenerated === true) {
|
|
1193
1276
|
upQueries.push(new Query_1.Query("CREATE SEQUENCE IF NOT EXISTS " + this.escapePath(this.buildSequencePath(table, newColumn)) + " OWNED BY " + this.escapePath(table) + ".\"" + newColumn.name + "\""));
|
|
1194
1277
|
downQueries.push(new Query_1.Query("DROP SEQUENCE " + this.escapePath(this.buildSequencePath(table, newColumn))));
|
|
@@ -1222,9 +1305,45 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
1222
1305
|
upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" TYPE " + this.driver.createFullType(newColumn)));
|
|
1223
1306
|
downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" TYPE " + this.driver.createFullType(oldColumn)));
|
|
1224
1307
|
}
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1308
|
+
if (!(newColumn.generatedType !== oldColumn.generatedType)) return [3 /*break*/, 11];
|
|
1309
|
+
if (!(!newColumn.generatedType || newColumn.generatedType === "VIRTUAL")) return [3 /*break*/, 11];
|
|
1310
|
+
return [4 /*yield*/, this.getTableNameWithSchema(table.name)];
|
|
1311
|
+
case 10:
|
|
1312
|
+
tableNameWithSchema = (_b.sent()).split('.');
|
|
1313
|
+
tableName = tableNameWithSchema[1];
|
|
1314
|
+
schema = tableNameWithSchema[0];
|
|
1315
|
+
upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " RENAME COLUMN \"" + oldColumn.name + "\" TO \"TEMP_OLD_" + oldColumn.name + "\""));
|
|
1316
|
+
upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ADD " + this.buildCreateColumnSql(table, newColumn)));
|
|
1317
|
+
upQueries.push(new Query_1.Query("UPDATE " + this.escapePath(table) + " SET \"" + newColumn.name + "\" = \"TEMP_OLD_" + oldColumn.name + "\""));
|
|
1318
|
+
upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP COLUMN \"TEMP_OLD_" + oldColumn.name + "\""));
|
|
1319
|
+
upQueries.push(this.deleteTypeormMetadataSql({
|
|
1320
|
+
database: this.driver.database,
|
|
1321
|
+
schema: schema,
|
|
1322
|
+
table: tableName,
|
|
1323
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
1324
|
+
name: oldColumn.name
|
|
1325
|
+
}));
|
|
1326
|
+
// However, we can't copy it back on downgrade. It needs to regenerate.
|
|
1327
|
+
downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP COLUMN \"" + newColumn.name + "\""));
|
|
1328
|
+
downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ADD " + this.buildCreateColumnSql(table, oldColumn)));
|
|
1329
|
+
downQueries.push(this.deleteTypeormMetadataSql({
|
|
1330
|
+
database: this.driver.database,
|
|
1331
|
+
schema: schema,
|
|
1332
|
+
table: tableName,
|
|
1333
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
1334
|
+
name: newColumn.name
|
|
1335
|
+
}));
|
|
1336
|
+
downQueries.push(this.insertTypeormMetadataSql({
|
|
1337
|
+
database: this.driver.database,
|
|
1338
|
+
schema: schema,
|
|
1339
|
+
table: tableName,
|
|
1340
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
1341
|
+
name: oldColumn.name,
|
|
1342
|
+
value: oldColumn.asExpression
|
|
1343
|
+
}));
|
|
1344
|
+
_b.label = 11;
|
|
1345
|
+
case 11: return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
|
|
1346
|
+
case 12:
|
|
1228
1347
|
_b.sent();
|
|
1229
1348
|
this.replaceCachedTable(table, clonedTable);
|
|
1230
1349
|
return [2 /*return*/];
|
|
@@ -1237,8 +1356,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
1237
1356
|
*/
|
|
1238
1357
|
PostgresQueryRunner.prototype.changeColumns = function (tableOrName, changedColumns) {
|
|
1239
1358
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
1240
|
-
var changedColumns_1, changedColumns_1_1, _a, oldColumn, newColumn,
|
|
1241
|
-
var
|
|
1359
|
+
var changedColumns_1, changedColumns_1_1, _a, oldColumn, newColumn, e_5_1;
|
|
1360
|
+
var e_5, _b;
|
|
1242
1361
|
return (0, tslib_1.__generator)(this, function (_c) {
|
|
1243
1362
|
switch (_c.label) {
|
|
1244
1363
|
case 0:
|
|
@@ -1257,14 +1376,14 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
1257
1376
|
return [3 /*break*/, 1];
|
|
1258
1377
|
case 4: return [3 /*break*/, 7];
|
|
1259
1378
|
case 5:
|
|
1260
|
-
|
|
1261
|
-
|
|
1379
|
+
e_5_1 = _c.sent();
|
|
1380
|
+
e_5 = { error: e_5_1 };
|
|
1262
1381
|
return [3 /*break*/, 7];
|
|
1263
1382
|
case 6:
|
|
1264
1383
|
try {
|
|
1265
1384
|
if (changedColumns_1_1 && !changedColumns_1_1.done && (_b = changedColumns_1.return)) _b.call(changedColumns_1);
|
|
1266
1385
|
}
|
|
1267
|
-
finally { if (
|
|
1386
|
+
finally { if (e_5) throw e_5.error; }
|
|
1268
1387
|
return [7 /*endfinally*/];
|
|
1269
1388
|
case 7: return [2 /*return*/];
|
|
1270
1389
|
}
|
|
@@ -1276,7 +1395,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
1276
1395
|
*/
|
|
1277
1396
|
PostgresQueryRunner.prototype.dropColumn = function (tableOrName, columnOrName) {
|
|
1278
1397
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
1279
|
-
var table, _a, column, clonedTable, upQueries, downQueries, pkName, columnNames, tableColumn, pkName_2, columnNames_2, columnIndex, columnCheck, columnUnique, hasEnum, enumType, escapedEnumName;
|
|
1398
|
+
var table, _a, column, clonedTable, upQueries, downQueries, pkName, columnNames, tableColumn, pkName_2, columnNames_2, columnIndex, columnCheck, columnUnique, hasEnum, enumType, escapedEnumName, tableNameWithSchema, tableName, schema, insertQuery, deleteQuery;
|
|
1280
1399
|
return (0, tslib_1.__generator)(this, function (_b) {
|
|
1281
1400
|
switch (_b.label) {
|
|
1282
1401
|
case 0:
|
|
@@ -1343,8 +1462,33 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
1343
1462
|
upQueries.push(this.dropEnumTypeSql(table, column, escapedEnumName));
|
|
1344
1463
|
downQueries.push(this.createEnumTypeSql(table, column, escapedEnumName));
|
|
1345
1464
|
_b.label = 6;
|
|
1346
|
-
case 6:
|
|
1465
|
+
case 6:
|
|
1466
|
+
if (!(column.generatedType === "STORED")) return [3 /*break*/, 8];
|
|
1467
|
+
return [4 /*yield*/, this.getTableNameWithSchema(table.name)];
|
|
1347
1468
|
case 7:
|
|
1469
|
+
tableNameWithSchema = (_b.sent()).split('.');
|
|
1470
|
+
tableName = tableNameWithSchema[1];
|
|
1471
|
+
schema = tableNameWithSchema[0];
|
|
1472
|
+
insertQuery = this.deleteTypeormMetadataSql({
|
|
1473
|
+
database: this.driver.database,
|
|
1474
|
+
schema: schema,
|
|
1475
|
+
table: tableName,
|
|
1476
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
1477
|
+
name: column.name
|
|
1478
|
+
});
|
|
1479
|
+
deleteQuery = this.insertTypeormMetadataSql({
|
|
1480
|
+
database: this.driver.database,
|
|
1481
|
+
schema: schema,
|
|
1482
|
+
table: tableName,
|
|
1483
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
1484
|
+
name: column.name,
|
|
1485
|
+
value: column.asExpression
|
|
1486
|
+
});
|
|
1487
|
+
upQueries.push(insertQuery);
|
|
1488
|
+
downQueries.push(deleteQuery);
|
|
1489
|
+
_b.label = 8;
|
|
1490
|
+
case 8: return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
|
|
1491
|
+
case 9:
|
|
1348
1492
|
_b.sent();
|
|
1349
1493
|
clonedTable.removeColumn(column);
|
|
1350
1494
|
this.replaceCachedTable(table, clonedTable);
|
|
@@ -1358,8 +1502,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
1358
1502
|
*/
|
|
1359
1503
|
PostgresQueryRunner.prototype.dropColumns = function (tableOrName, columns) {
|
|
1360
1504
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
1361
|
-
var columns_2, columns_2_1, column,
|
|
1362
|
-
var
|
|
1505
|
+
var columns_2, columns_2_1, column, e_6_1;
|
|
1506
|
+
var e_6, _a;
|
|
1363
1507
|
return (0, tslib_1.__generator)(this, function (_b) {
|
|
1364
1508
|
switch (_b.label) {
|
|
1365
1509
|
case 0:
|
|
@@ -1378,14 +1522,14 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
1378
1522
|
return [3 /*break*/, 1];
|
|
1379
1523
|
case 4: return [3 /*break*/, 7];
|
|
1380
1524
|
case 5:
|
|
1381
|
-
|
|
1382
|
-
|
|
1525
|
+
e_6_1 = _b.sent();
|
|
1526
|
+
e_6 = { error: e_6_1 };
|
|
1383
1527
|
return [3 /*break*/, 7];
|
|
1384
1528
|
case 6:
|
|
1385
1529
|
try {
|
|
1386
1530
|
if (columns_2_1 && !columns_2_1.done && (_a = columns_2.return)) _a.call(columns_2);
|
|
1387
1531
|
}
|
|
1388
|
-
finally { if (
|
|
1532
|
+
finally { if (e_6) throw e_6.error; }
|
|
1389
1533
|
return [7 /*endfinally*/];
|
|
1390
1534
|
case 7: return [2 /*return*/];
|
|
1391
1535
|
}
|
|
@@ -1541,8 +1685,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
1541
1685
|
*/
|
|
1542
1686
|
PostgresQueryRunner.prototype.createUniqueConstraints = function (tableOrName, uniqueConstraints) {
|
|
1543
1687
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
1544
|
-
var uniqueConstraints_1, uniqueConstraints_1_1, uniqueConstraint,
|
|
1545
|
-
var
|
|
1688
|
+
var uniqueConstraints_1, uniqueConstraints_1_1, uniqueConstraint, e_7_1;
|
|
1689
|
+
var e_7, _a;
|
|
1546
1690
|
return (0, tslib_1.__generator)(this, function (_b) {
|
|
1547
1691
|
switch (_b.label) {
|
|
1548
1692
|
case 0:
|
|
@@ -1561,14 +1705,14 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
1561
1705
|
return [3 /*break*/, 1];
|
|
1562
1706
|
case 4: return [3 /*break*/, 7];
|
|
1563
1707
|
case 5:
|
|
1564
|
-
|
|
1565
|
-
|
|
1708
|
+
e_7_1 = _b.sent();
|
|
1709
|
+
e_7 = { error: e_7_1 };
|
|
1566
1710
|
return [3 /*break*/, 7];
|
|
1567
1711
|
case 6:
|
|
1568
1712
|
try {
|
|
1569
1713
|
if (uniqueConstraints_1_1 && !uniqueConstraints_1_1.done && (_a = uniqueConstraints_1.return)) _a.call(uniqueConstraints_1);
|
|
1570
1714
|
}
|
|
1571
|
-
finally { if (
|
|
1715
|
+
finally { if (e_7) throw e_7.error; }
|
|
1572
1716
|
return [7 /*endfinally*/];
|
|
1573
1717
|
case 7: return [2 /*return*/];
|
|
1574
1718
|
}
|
|
@@ -1612,8 +1756,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
1612
1756
|
*/
|
|
1613
1757
|
PostgresQueryRunner.prototype.dropUniqueConstraints = function (tableOrName, uniqueConstraints) {
|
|
1614
1758
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
1615
|
-
var uniqueConstraints_2, uniqueConstraints_2_1, uniqueConstraint,
|
|
1616
|
-
var
|
|
1759
|
+
var uniqueConstraints_2, uniqueConstraints_2_1, uniqueConstraint, e_8_1;
|
|
1760
|
+
var e_8, _a;
|
|
1617
1761
|
return (0, tslib_1.__generator)(this, function (_b) {
|
|
1618
1762
|
switch (_b.label) {
|
|
1619
1763
|
case 0:
|
|
@@ -1632,14 +1776,14 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
1632
1776
|
return [3 /*break*/, 1];
|
|
1633
1777
|
case 4: return [3 /*break*/, 7];
|
|
1634
1778
|
case 5:
|
|
1635
|
-
|
|
1636
|
-
|
|
1779
|
+
e_8_1 = _b.sent();
|
|
1780
|
+
e_8 = { error: e_8_1 };
|
|
1637
1781
|
return [3 /*break*/, 7];
|
|
1638
1782
|
case 6:
|
|
1639
1783
|
try {
|
|
1640
1784
|
if (uniqueConstraints_2_1 && !uniqueConstraints_2_1.done && (_a = uniqueConstraints_2.return)) _a.call(uniqueConstraints_2);
|
|
1641
1785
|
}
|
|
1642
|
-
finally { if (
|
|
1786
|
+
finally { if (e_8) throw e_8.error; }
|
|
1643
1787
|
return [7 /*endfinally*/];
|
|
1644
1788
|
case 7: return [2 /*return*/];
|
|
1645
1789
|
}
|
|
@@ -1887,8 +2031,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
1887
2031
|
*/
|
|
1888
2032
|
PostgresQueryRunner.prototype.createForeignKeys = function (tableOrName, foreignKeys) {
|
|
1889
2033
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
1890
|
-
var foreignKeys_1, foreignKeys_1_1, foreignKey,
|
|
1891
|
-
var
|
|
2034
|
+
var foreignKeys_1, foreignKeys_1_1, foreignKey, e_9_1;
|
|
2035
|
+
var e_9, _a;
|
|
1892
2036
|
return (0, tslib_1.__generator)(this, function (_b) {
|
|
1893
2037
|
switch (_b.label) {
|
|
1894
2038
|
case 0:
|
|
@@ -1907,14 +2051,14 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
1907
2051
|
return [3 /*break*/, 1];
|
|
1908
2052
|
case 4: return [3 /*break*/, 7];
|
|
1909
2053
|
case 5:
|
|
1910
|
-
|
|
1911
|
-
|
|
2054
|
+
e_9_1 = _b.sent();
|
|
2055
|
+
e_9 = { error: e_9_1 };
|
|
1912
2056
|
return [3 /*break*/, 7];
|
|
1913
2057
|
case 6:
|
|
1914
2058
|
try {
|
|
1915
2059
|
if (foreignKeys_1_1 && !foreignKeys_1_1.done && (_a = foreignKeys_1.return)) _a.call(foreignKeys_1);
|
|
1916
2060
|
}
|
|
1917
|
-
finally { if (
|
|
2061
|
+
finally { if (e_9) throw e_9.error; }
|
|
1918
2062
|
return [7 /*endfinally*/];
|
|
1919
2063
|
case 7: return [2 /*return*/];
|
|
1920
2064
|
}
|
|
@@ -1958,8 +2102,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
1958
2102
|
*/
|
|
1959
2103
|
PostgresQueryRunner.prototype.dropForeignKeys = function (tableOrName, foreignKeys) {
|
|
1960
2104
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
1961
|
-
var foreignKeys_2, foreignKeys_2_1, foreignKey,
|
|
1962
|
-
var
|
|
2105
|
+
var foreignKeys_2, foreignKeys_2_1, foreignKey, e_10_1;
|
|
2106
|
+
var e_10, _a;
|
|
1963
2107
|
return (0, tslib_1.__generator)(this, function (_b) {
|
|
1964
2108
|
switch (_b.label) {
|
|
1965
2109
|
case 0:
|
|
@@ -1978,14 +2122,14 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
1978
2122
|
return [3 /*break*/, 1];
|
|
1979
2123
|
case 4: return [3 /*break*/, 7];
|
|
1980
2124
|
case 5:
|
|
1981
|
-
|
|
1982
|
-
|
|
2125
|
+
e_10_1 = _b.sent();
|
|
2126
|
+
e_10 = { error: e_10_1 };
|
|
1983
2127
|
return [3 /*break*/, 7];
|
|
1984
2128
|
case 6:
|
|
1985
2129
|
try {
|
|
1986
2130
|
if (foreignKeys_2_1 && !foreignKeys_2_1.done && (_a = foreignKeys_2.return)) _a.call(foreignKeys_2);
|
|
1987
2131
|
}
|
|
1988
|
-
finally { if (
|
|
2132
|
+
finally { if (e_10) throw e_10.error; }
|
|
1989
2133
|
return [7 /*endfinally*/];
|
|
1990
2134
|
case 7: return [2 /*return*/];
|
|
1991
2135
|
}
|
|
@@ -2029,8 +2173,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
2029
2173
|
*/
|
|
2030
2174
|
PostgresQueryRunner.prototype.createIndices = function (tableOrName, indices) {
|
|
2031
2175
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
2032
|
-
var indices_1, indices_1_1, index,
|
|
2033
|
-
var
|
|
2176
|
+
var indices_1, indices_1_1, index, e_11_1;
|
|
2177
|
+
var e_11, _a;
|
|
2034
2178
|
return (0, tslib_1.__generator)(this, function (_b) {
|
|
2035
2179
|
switch (_b.label) {
|
|
2036
2180
|
case 0:
|
|
@@ -2049,14 +2193,14 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
2049
2193
|
return [3 /*break*/, 1];
|
|
2050
2194
|
case 4: return [3 /*break*/, 7];
|
|
2051
2195
|
case 5:
|
|
2052
|
-
|
|
2053
|
-
|
|
2196
|
+
e_11_1 = _b.sent();
|
|
2197
|
+
e_11 = { error: e_11_1 };
|
|
2054
2198
|
return [3 /*break*/, 7];
|
|
2055
2199
|
case 6:
|
|
2056
2200
|
try {
|
|
2057
2201
|
if (indices_1_1 && !indices_1_1.done && (_a = indices_1.return)) _a.call(indices_1);
|
|
2058
2202
|
}
|
|
2059
|
-
finally { if (
|
|
2203
|
+
finally { if (e_11) throw e_11.error; }
|
|
2060
2204
|
return [7 /*endfinally*/];
|
|
2061
2205
|
case 7: return [2 /*return*/];
|
|
2062
2206
|
}
|
|
@@ -2100,8 +2244,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
2100
2244
|
*/
|
|
2101
2245
|
PostgresQueryRunner.prototype.dropIndices = function (tableOrName, indices) {
|
|
2102
2246
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
2103
|
-
var indices_2, indices_2_1, index,
|
|
2104
|
-
var
|
|
2247
|
+
var indices_2, indices_2_1, index, e_12_1;
|
|
2248
|
+
var e_12, _a;
|
|
2105
2249
|
return (0, tslib_1.__generator)(this, function (_b) {
|
|
2106
2250
|
switch (_b.label) {
|
|
2107
2251
|
case 0:
|
|
@@ -2120,14 +2264,14 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
2120
2264
|
return [3 /*break*/, 1];
|
|
2121
2265
|
case 4: return [3 /*break*/, 7];
|
|
2122
2266
|
case 5:
|
|
2123
|
-
|
|
2124
|
-
|
|
2267
|
+
e_12_1 = _b.sent();
|
|
2268
|
+
e_12 = { error: e_12_1 };
|
|
2125
2269
|
return [3 /*break*/, 7];
|
|
2126
2270
|
case 6:
|
|
2127
2271
|
try {
|
|
2128
2272
|
if (indices_2_1 && !indices_2_1.done && (_a = indices_2.return)) _a.call(indices_2);
|
|
2129
2273
|
}
|
|
2130
|
-
finally { if (
|
|
2274
|
+
finally { if (e_12) throw e_12.error; }
|
|
2131
2275
|
return [7 /*endfinally*/];
|
|
2132
2276
|
case 7: return [2 /*return*/];
|
|
2133
2277
|
}
|
|
@@ -2271,7 +2415,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
2271
2415
|
query = "SELECT \"t\".* FROM " + this.escapePath(this.getTypeormMetadataTableName()) + " \"t\" " +
|
|
2272
2416
|
"INNER JOIN \"pg_catalog\".\"pg_class\" \"c\" ON \"c\".\"relname\" = \"t\".\"name\" " +
|
|
2273
2417
|
"INNER JOIN \"pg_namespace\" \"n\" ON \"n\".\"oid\" = \"c\".\"relnamespace\" AND \"n\".\"nspname\" = \"t\".\"schema\" " +
|
|
2274
|
-
("WHERE \"t\".\"type\" IN ('VIEW', 'MATERIALIZED_VIEW') " + (viewsCondition ? "AND (" + viewsCondition + ")" : ""));
|
|
2418
|
+
("WHERE \"t\".\"type\" IN ('" + MetadataTableType_1.MetadataTableType.VIEW + "', '" + MetadataTableType_1.MetadataTableType.MATERIALIZED_VIEW + "') " + (viewsCondition ? "AND (" + viewsCondition + ")" : ""));
|
|
2275
2419
|
return [4 /*yield*/, this.query(query)];
|
|
2276
2420
|
case 4:
|
|
2277
2421
|
dbViews = _a.sent();
|
|
@@ -2282,7 +2426,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
2282
2426
|
view.schema = dbView["schema"];
|
|
2283
2427
|
view.name = _this.driver.buildTableName(dbView["name"], schema);
|
|
2284
2428
|
view.expression = dbView["value"];
|
|
2285
|
-
view.materialized = dbView["type"] ===
|
|
2429
|
+
view.materialized = dbView["type"] === MetadataTableType_1.MetadataTableType.MATERIALIZED_VIEW;
|
|
2286
2430
|
return view;
|
|
2287
2431
|
})];
|
|
2288
2432
|
}
|
|
@@ -2433,7 +2577,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
2433
2577
|
return [4 /*yield*/, Promise.all(dbColumns
|
|
2434
2578
|
.filter(function (dbColumn) { return (dbColumn["table_name"] === dbTable["table_name"] && dbColumn["table_schema"] === dbTable["table_schema"]); })
|
|
2435
2579
|
.map(function (dbColumn) { return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () {
|
|
2436
|
-
var columnConstraints, tableColumn, name, builtEnumName, enumName, sql, results, type, geometryColumnSql, results, geographyColumnSql, results, length, match,
|
|
2580
|
+
var columnConstraints, tableColumn, name, builtEnumName, enumName, sql, results, type, geometryColumnSql, results, geographyColumnSql, results, length, match, uniqueConstraints, isConstraintComposite, serialDefaultName, serialDefaultPath, defaultWithoutQuotes, asExpressionQuery, results;
|
|
2437
2581
|
return (0, tslib_1.__generator)(this, function (_a) {
|
|
2438
2582
|
switch (_a.label) {
|
|
2439
2583
|
case 0:
|
|
@@ -2533,14 +2677,18 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
2533
2677
|
}
|
|
2534
2678
|
tableColumn.isNullable = dbColumn["is_nullable"] === "YES";
|
|
2535
2679
|
tableColumn.isPrimary = !!columnConstraints.find(function (constraint) { return constraint["constraint_type"] === "PRIMARY"; });
|
|
2536
|
-
|
|
2537
|
-
isConstraintComposite = uniqueConstraint
|
|
2538
|
-
|
|
2680
|
+
uniqueConstraints = columnConstraints.filter(function (constraint) { return constraint["constraint_type"] === "UNIQUE"; });
|
|
2681
|
+
isConstraintComposite = uniqueConstraints.every(function (uniqueConstraint) {
|
|
2682
|
+
return dbConstraints.some(function (dbConstraint) { return dbConstraint["constraint_type"] === "UNIQUE"
|
|
2539
2683
|
&& dbConstraint["constraint_name"] === uniqueConstraint["constraint_name"]
|
|
2540
|
-
&& dbConstraint["column_name"] !== dbColumn["column_name"]; })
|
|
2541
|
-
|
|
2542
|
-
tableColumn.isUnique =
|
|
2543
|
-
if (dbColumn
|
|
2684
|
+
&& dbConstraint["column_name"] !== dbColumn["column_name"]; });
|
|
2685
|
+
});
|
|
2686
|
+
tableColumn.isUnique = uniqueConstraints.length > 0 && !isConstraintComposite;
|
|
2687
|
+
if (dbColumn.is_identity === "YES") { // Postgres 10+ Identity column
|
|
2688
|
+
tableColumn.isGenerated = true;
|
|
2689
|
+
tableColumn.generationStrategy = "identity";
|
|
2690
|
+
}
|
|
2691
|
+
else if (dbColumn["column_default"] !== null && dbColumn["column_default"] !== undefined) {
|
|
2544
2692
|
serialDefaultName = "nextval('" + this.buildSequenceName(table, dbColumn["column_name"]) + "'::regclass)";
|
|
2545
2693
|
serialDefaultPath = "nextval('" + this.buildSequencePath(table, dbColumn["column_name"]) + "'::regclass)";
|
|
2546
2694
|
defaultWithoutQuotes = dbColumn["column_default"].replace(/"/g, "");
|
|
@@ -2556,10 +2704,30 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
2556
2704
|
tableColumn.default = dbColumn["column_default"];
|
|
2557
2705
|
}
|
|
2558
2706
|
else {
|
|
2559
|
-
tableColumn.default = dbColumn["column_default"].replace(/::[\w\s
|
|
2707
|
+
tableColumn.default = dbColumn["column_default"].replace(/::[\w\s\.\[\]\"]+/g, "");
|
|
2560
2708
|
tableColumn.default = tableColumn.default.replace(/^(-?\d+)$/, "'$1'");
|
|
2561
2709
|
}
|
|
2562
2710
|
}
|
|
2711
|
+
if (!(dbColumn["is_generated"] === "ALWAYS" && dbColumn["generation_expression"])) return [3 /*break*/, 9];
|
|
2712
|
+
// In postgres there is no VIRTUAL generated column type
|
|
2713
|
+
tableColumn.generatedType = "STORED";
|
|
2714
|
+
asExpressionQuery = "SELECT * FROM \"typeorm_metadata\" "
|
|
2715
|
+
+ (" WHERE \"table\" = '" + dbTable["table_name"] + "'")
|
|
2716
|
+
+ (" AND \"name\" = '" + tableColumn.name + "'")
|
|
2717
|
+
+ (" AND \"schema\" = '" + dbTable["table_schema"] + "'")
|
|
2718
|
+
+ (" AND \"database\" = '" + this.driver.database + "'")
|
|
2719
|
+
+ (" AND \"type\" = '" + MetadataTableType_1.MetadataTableType.GENERATED_COLUMN + "'");
|
|
2720
|
+
return [4 /*yield*/, this.query(asExpressionQuery)];
|
|
2721
|
+
case 8:
|
|
2722
|
+
results = _a.sent();
|
|
2723
|
+
if (results[0] && results[0].value) {
|
|
2724
|
+
tableColumn.asExpression = results[0].value;
|
|
2725
|
+
}
|
|
2726
|
+
else {
|
|
2727
|
+
tableColumn.asExpression = "";
|
|
2728
|
+
}
|
|
2729
|
+
_a.label = 9;
|
|
2730
|
+
case 9:
|
|
2563
2731
|
tableColumn.comment = dbColumn["description"] ? dbColumn["description"] : undefined;
|
|
2564
2732
|
if (dbColumn["character_set_name"])
|
|
2565
2733
|
tableColumn.charset = dbColumn["character_set_name"];
|
|
@@ -2757,24 +2925,19 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
2757
2925
|
};
|
|
2758
2926
|
PostgresQueryRunner.prototype.insertViewDefinitionSql = function (view) {
|
|
2759
2927
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
2760
|
-
var currentSchema, _a, schema, name, type, expression
|
|
2761
|
-
return (0, tslib_1.__generator)(this, function (
|
|
2762
|
-
switch (
|
|
2928
|
+
var currentSchema, _a, schema, name, type, expression;
|
|
2929
|
+
return (0, tslib_1.__generator)(this, function (_b) {
|
|
2930
|
+
switch (_b.label) {
|
|
2763
2931
|
case 0: return [4 /*yield*/, this.getCurrentSchema()];
|
|
2764
2932
|
case 1:
|
|
2765
|
-
currentSchema =
|
|
2933
|
+
currentSchema = _b.sent();
|
|
2766
2934
|
_a = this.driver.parseTableName(view), schema = _a.schema, name = _a.tableName;
|
|
2767
2935
|
if (!schema) {
|
|
2768
2936
|
schema = currentSchema;
|
|
2769
2937
|
}
|
|
2770
|
-
type = view.materialized ?
|
|
2938
|
+
type = view.materialized ? MetadataTableType_1.MetadataTableType.MATERIALIZED_VIEW : MetadataTableType_1.MetadataTableType.VIEW;
|
|
2771
2939
|
expression = typeof view.expression === "string" ? view.expression.trim() : view.expression(this.connection).getQuery();
|
|
2772
|
-
|
|
2773
|
-
.insert()
|
|
2774
|
-
.into(this.getTypeormMetadataTableName())
|
|
2775
|
-
.values({ type: type, schema: schema, name: name, value: expression })
|
|
2776
|
-
.getQueryAndParameters(), 2), query = _b[0], parameters = _b[1];
|
|
2777
|
-
return [2 /*return*/, new Query_1.Query(query, parameters)];
|
|
2940
|
+
return [2 /*return*/, this.insertTypeormMetadataSql({ type: type, schema: schema, name: name, value: expression })];
|
|
2778
2941
|
}
|
|
2779
2942
|
});
|
|
2780
2943
|
});
|
|
@@ -2791,25 +2954,18 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
2791
2954
|
*/
|
|
2792
2955
|
PostgresQueryRunner.prototype.deleteViewDefinitionSql = function (view) {
|
|
2793
2956
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
2794
|
-
var currentSchema, _a, schema, name, type
|
|
2795
|
-
return (0, tslib_1.__generator)(this, function (
|
|
2796
|
-
switch (
|
|
2957
|
+
var currentSchema, _a, schema, name, type;
|
|
2958
|
+
return (0, tslib_1.__generator)(this, function (_b) {
|
|
2959
|
+
switch (_b.label) {
|
|
2797
2960
|
case 0: return [4 /*yield*/, this.getCurrentSchema()];
|
|
2798
2961
|
case 1:
|
|
2799
|
-
currentSchema =
|
|
2962
|
+
currentSchema = _b.sent();
|
|
2800
2963
|
_a = this.driver.parseTableName(view), schema = _a.schema, name = _a.tableName;
|
|
2801
2964
|
if (!schema) {
|
|
2802
2965
|
schema = currentSchema;
|
|
2803
2966
|
}
|
|
2804
|
-
type = view.materialized ?
|
|
2805
|
-
|
|
2806
|
-
_b = (0, tslib_1.__read)(qb.delete()
|
|
2807
|
-
.from(this.getTypeormMetadataTableName())
|
|
2808
|
-
.where(qb.escape("type") + " = :type", { type: type })
|
|
2809
|
-
.andWhere(qb.escape("schema") + " = :schema", { schema: schema })
|
|
2810
|
-
.andWhere(qb.escape("name") + " = :name", { name: name })
|
|
2811
|
-
.getQueryAndParameters(), 2), query = _b[0], parameters = _b[1];
|
|
2812
|
-
return [2 /*return*/, new Query_1.Query(query, parameters)];
|
|
2967
|
+
type = view.materialized ? MetadataTableType_1.MetadataTableType.MATERIALIZED_VIEW : MetadataTableType_1.MetadataTableType.VIEW;
|
|
2968
|
+
return [2 /*return*/, this.deleteTypeormMetadataSql({ type: type, schema: schema, name: name })];
|
|
2813
2969
|
}
|
|
2814
2970
|
});
|
|
2815
2971
|
});
|
|
@@ -3060,18 +3216,45 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
3060
3216
|
}
|
|
3061
3217
|
return "\"" + tableName + "\"";
|
|
3062
3218
|
};
|
|
3219
|
+
/**
|
|
3220
|
+
* Get the table name with table schema
|
|
3221
|
+
* Note: Without ' or "
|
|
3222
|
+
*/
|
|
3223
|
+
PostgresQueryRunner.prototype.getTableNameWithSchema = function (target) {
|
|
3224
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
3225
|
+
var tableName, schemaResult, schema;
|
|
3226
|
+
return (0, tslib_1.__generator)(this, function (_a) {
|
|
3227
|
+
switch (_a.label) {
|
|
3228
|
+
case 0:
|
|
3229
|
+
tableName = target instanceof Table_1.Table ? target.name : target;
|
|
3230
|
+
if (!(tableName.indexOf(".") === -1)) return [3 /*break*/, 2];
|
|
3231
|
+
return [4 /*yield*/, this.query("SELECT current_schema()")];
|
|
3232
|
+
case 1:
|
|
3233
|
+
schemaResult = _a.sent();
|
|
3234
|
+
schema = schemaResult[0]["current_schema"];
|
|
3235
|
+
return [2 /*return*/, schema + "." + tableName];
|
|
3236
|
+
case 2: return [2 /*return*/, tableName.split(".")[0] + "." + tableName.split(".")[1]];
|
|
3237
|
+
}
|
|
3238
|
+
});
|
|
3239
|
+
});
|
|
3240
|
+
};
|
|
3063
3241
|
/**
|
|
3064
3242
|
* Builds a query for create column.
|
|
3065
3243
|
*/
|
|
3066
3244
|
PostgresQueryRunner.prototype.buildCreateColumnSql = function (table, column) {
|
|
3067
3245
|
var c = "\"" + column.name + "\"";
|
|
3068
3246
|
if (column.isGenerated === true && column.generationStrategy !== "uuid") {
|
|
3069
|
-
if (column.
|
|
3070
|
-
c += "
|
|
3071
|
-
|
|
3072
|
-
|
|
3073
|
-
|
|
3074
|
-
|
|
3247
|
+
if (column.generationStrategy === "identity") { // Postgres 10+ Identity generated column
|
|
3248
|
+
c += " " + column.type + " GENERATED BY DEFAULT AS IDENTITY";
|
|
3249
|
+
}
|
|
3250
|
+
else { // classic SERIAL primary column
|
|
3251
|
+
if (column.type === "integer" || column.type === "int" || column.type === "int4")
|
|
3252
|
+
c += " SERIAL";
|
|
3253
|
+
if (column.type === "smallint" || column.type === "int2")
|
|
3254
|
+
c += " SMALLSERIAL";
|
|
3255
|
+
if (column.type === "bigint" || column.type === "int8")
|
|
3256
|
+
c += " BIGSERIAL";
|
|
3257
|
+
}
|
|
3075
3258
|
}
|
|
3076
3259
|
if (column.type === "enum" || column.type === "simple-enum") {
|
|
3077
3260
|
c += " " + this.buildEnumName(table, column);
|
|
@@ -3081,16 +3264,23 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
3081
3264
|
else if (!column.isGenerated || column.type === "uuid") {
|
|
3082
3265
|
c += " " + this.connection.driver.createFullType(column);
|
|
3083
3266
|
}
|
|
3084
|
-
|
|
3085
|
-
|
|
3086
|
-
if (column.
|
|
3087
|
-
c += "
|
|
3088
|
-
|
|
3089
|
-
|
|
3090
|
-
|
|
3091
|
-
|
|
3092
|
-
|
|
3093
|
-
|
|
3267
|
+
// CHARACTER SET, COLLATE, NOT NULL and DEFAULT do not exist on generated (virtual) columns
|
|
3268
|
+
// Also, postgres only supports the stored generated column type
|
|
3269
|
+
if (column.generatedType === "STORED" && column.asExpression) {
|
|
3270
|
+
c += " GENERATED ALWAYS AS (" + column.asExpression + ") STORED";
|
|
3271
|
+
}
|
|
3272
|
+
else {
|
|
3273
|
+
if (column.charset)
|
|
3274
|
+
c += " CHARACTER SET \"" + column.charset + "\"";
|
|
3275
|
+
if (column.collation)
|
|
3276
|
+
c += " COLLATE \"" + column.collation + "\"";
|
|
3277
|
+
if (column.isNullable !== true)
|
|
3278
|
+
c += " NOT NULL";
|
|
3279
|
+
if (column.default !== undefined && column.default !== null)
|
|
3280
|
+
c += " DEFAULT " + column.default;
|
|
3281
|
+
if (column.isGenerated && column.generationStrategy === "uuid" && !column.default)
|
|
3282
|
+
c += " DEFAULT " + this.driver.uuidGenerator;
|
|
3283
|
+
}
|
|
3094
3284
|
return c;
|
|
3095
3285
|
};
|
|
3096
3286
|
/**
|