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
|
@@ -18,6 +18,7 @@ import { Query } from "../Query";
|
|
|
18
18
|
import { VersionUtils } from "../../util/VersionUtils";
|
|
19
19
|
import { TypeORMError } from "../../error";
|
|
20
20
|
import { QueryResult } from "../../query-runner/QueryResult";
|
|
21
|
+
import { MetadataTableType } from "../types/MetadataTableType";
|
|
21
22
|
/**
|
|
22
23
|
* Runs queries on a single postgres database connection.
|
|
23
24
|
*/
|
|
@@ -219,23 +220,25 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
219
220
|
if (maxQueryExecutionTime && queryExecutionTime > maxQueryExecutionTime)
|
|
220
221
|
this.driver.connection.logger.logQuerySlow(queryExecutionTime, query, parameters, this);
|
|
221
222
|
result = new QueryResult();
|
|
222
|
-
if (raw
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
223
|
+
if (raw) {
|
|
224
|
+
if (raw.hasOwnProperty('rows')) {
|
|
225
|
+
result.records = raw.rows;
|
|
226
|
+
}
|
|
227
|
+
if (raw.hasOwnProperty('rowCount')) {
|
|
228
|
+
result.affected = raw.rowCount;
|
|
229
|
+
}
|
|
230
|
+
switch (raw.command) {
|
|
231
|
+
case "DELETE":
|
|
232
|
+
case "UPDATE":
|
|
233
|
+
// for UPDATE and DELETE query additionally return number of affected rows
|
|
234
|
+
result.raw = [raw.rows, raw.rowCount];
|
|
235
|
+
break;
|
|
236
|
+
default:
|
|
237
|
+
result.raw = raw.rows;
|
|
238
|
+
}
|
|
239
|
+
if (!useStructuredResult) {
|
|
240
|
+
return [2 /*return*/, result.raw];
|
|
241
|
+
}
|
|
239
242
|
}
|
|
240
243
|
return [2 /*return*/, result];
|
|
241
244
|
case 4:
|
|
@@ -506,35 +509,35 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
506
509
|
if (createForeignKeys === void 0) { createForeignKeys = true; }
|
|
507
510
|
if (createIndices === void 0) { createIndices = true; }
|
|
508
511
|
return __awaiter(this, void 0, void 0, function () {
|
|
509
|
-
var isTableExist, upQueries, downQueries, enumColumns, createdEnumTypes, enumColumns_1, enumColumns_1_1, column, hasEnum, enumName, e_1_1;
|
|
510
|
-
var e_1, _a;
|
|
512
|
+
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;
|
|
513
|
+
var e_1, _a, e_2, _b;
|
|
511
514
|
var _this = this;
|
|
512
|
-
return __generator(this, function (
|
|
513
|
-
switch (
|
|
515
|
+
return __generator(this, function (_c) {
|
|
516
|
+
switch (_c.label) {
|
|
514
517
|
case 0:
|
|
515
518
|
if (!ifNotExist) return [3 /*break*/, 2];
|
|
516
519
|
return [4 /*yield*/, this.hasTable(table)];
|
|
517
520
|
case 1:
|
|
518
|
-
isTableExist =
|
|
521
|
+
isTableExist = _c.sent();
|
|
519
522
|
if (isTableExist)
|
|
520
523
|
return [2 /*return*/, Promise.resolve()];
|
|
521
|
-
|
|
524
|
+
_c.label = 2;
|
|
522
525
|
case 2:
|
|
523
526
|
upQueries = [];
|
|
524
527
|
downQueries = [];
|
|
525
528
|
enumColumns = table.columns.filter(function (column) { return column.type === "enum" || column.type === "simple-enum"; });
|
|
526
529
|
createdEnumTypes = [];
|
|
527
|
-
|
|
530
|
+
_c.label = 3;
|
|
528
531
|
case 3:
|
|
529
|
-
|
|
532
|
+
_c.trys.push([3, 8, 9, 10]);
|
|
530
533
|
enumColumns_1 = __values(enumColumns), enumColumns_1_1 = enumColumns_1.next();
|
|
531
|
-
|
|
534
|
+
_c.label = 4;
|
|
532
535
|
case 4:
|
|
533
536
|
if (!!enumColumns_1_1.done) return [3 /*break*/, 7];
|
|
534
537
|
column = enumColumns_1_1.value;
|
|
535
538
|
return [4 /*yield*/, this.hasEnumType(table, column)];
|
|
536
539
|
case 5:
|
|
537
|
-
hasEnum =
|
|
540
|
+
hasEnum = _c.sent();
|
|
538
541
|
enumName = this.buildEnumName(table, column);
|
|
539
542
|
// if enum with the same "enumName" is defined more then once, me must prevent double creation
|
|
540
543
|
if (!hasEnum && createdEnumTypes.indexOf(enumName) === -1) {
|
|
@@ -542,13 +545,13 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
542
545
|
upQueries.push(this.createEnumTypeSql(table, column, enumName));
|
|
543
546
|
downQueries.push(this.dropEnumTypeSql(table, column, enumName));
|
|
544
547
|
}
|
|
545
|
-
|
|
548
|
+
_c.label = 6;
|
|
546
549
|
case 6:
|
|
547
550
|
enumColumns_1_1 = enumColumns_1.next();
|
|
548
551
|
return [3 /*break*/, 4];
|
|
549
552
|
case 7: return [3 /*break*/, 10];
|
|
550
553
|
case 8:
|
|
551
|
-
e_1_1 =
|
|
554
|
+
e_1_1 = _c.sent();
|
|
552
555
|
e_1 = { error: e_1_1 };
|
|
553
556
|
return [3 /*break*/, 10];
|
|
554
557
|
case 9:
|
|
@@ -558,6 +561,54 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
558
561
|
finally { if (e_1) throw e_1.error; }
|
|
559
562
|
return [7 /*endfinally*/];
|
|
560
563
|
case 10:
|
|
564
|
+
generatedColumns = table.columns.filter(function (column) { return column.generatedType === "STORED" && column.asExpression; });
|
|
565
|
+
_c.label = 11;
|
|
566
|
+
case 11:
|
|
567
|
+
_c.trys.push([11, 16, 17, 18]);
|
|
568
|
+
generatedColumns_1 = __values(generatedColumns), generatedColumns_1_1 = generatedColumns_1.next();
|
|
569
|
+
_c.label = 12;
|
|
570
|
+
case 12:
|
|
571
|
+
if (!!generatedColumns_1_1.done) return [3 /*break*/, 15];
|
|
572
|
+
column = generatedColumns_1_1.value;
|
|
573
|
+
return [4 /*yield*/, this.getTableNameWithSchema(table.name)];
|
|
574
|
+
case 13:
|
|
575
|
+
tableNameWithSchema = (_c.sent()).split('.');
|
|
576
|
+
tableName = tableNameWithSchema[1];
|
|
577
|
+
schema = tableNameWithSchema[0];
|
|
578
|
+
insertQuery = this.insertTypeormMetadataSql({
|
|
579
|
+
database: this.driver.database,
|
|
580
|
+
schema: schema,
|
|
581
|
+
table: tableName,
|
|
582
|
+
type: MetadataTableType.GENERATED_COLUMN,
|
|
583
|
+
name: column.name,
|
|
584
|
+
value: column.asExpression
|
|
585
|
+
});
|
|
586
|
+
deleteQuery = this.deleteTypeormMetadataSql({
|
|
587
|
+
database: this.driver.database,
|
|
588
|
+
schema: schema,
|
|
589
|
+
table: tableName,
|
|
590
|
+
type: MetadataTableType.GENERATED_COLUMN,
|
|
591
|
+
name: column.name
|
|
592
|
+
});
|
|
593
|
+
upQueries.push(deleteQuery);
|
|
594
|
+
upQueries.push(insertQuery);
|
|
595
|
+
downQueries.push(deleteQuery);
|
|
596
|
+
_c.label = 14;
|
|
597
|
+
case 14:
|
|
598
|
+
generatedColumns_1_1 = generatedColumns_1.next();
|
|
599
|
+
return [3 /*break*/, 12];
|
|
600
|
+
case 15: return [3 /*break*/, 18];
|
|
601
|
+
case 16:
|
|
602
|
+
e_2_1 = _c.sent();
|
|
603
|
+
e_2 = { error: e_2_1 };
|
|
604
|
+
return [3 /*break*/, 18];
|
|
605
|
+
case 17:
|
|
606
|
+
try {
|
|
607
|
+
if (generatedColumns_1_1 && !generatedColumns_1_1.done && (_b = generatedColumns_1.return)) _b.call(generatedColumns_1);
|
|
608
|
+
}
|
|
609
|
+
finally { if (e_2) throw e_2.error; }
|
|
610
|
+
return [7 /*endfinally*/];
|
|
611
|
+
case 18:
|
|
561
612
|
upQueries.push(this.createTableSql(table, createForeignKeys));
|
|
562
613
|
downQueries.push(this.dropTableSql(table));
|
|
563
614
|
// if createForeignKeys is true, we must drop created foreign keys in down query.
|
|
@@ -574,8 +625,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
574
625
|
});
|
|
575
626
|
}
|
|
576
627
|
return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
|
|
577
|
-
case
|
|
578
|
-
|
|
628
|
+
case 19:
|
|
629
|
+
_c.sent();
|
|
579
630
|
return [2 /*return*/];
|
|
580
631
|
}
|
|
581
632
|
});
|
|
@@ -693,8 +744,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
693
744
|
*/
|
|
694
745
|
PostgresQueryRunner.prototype.renameTable = function (oldTableOrName, newTableName) {
|
|
695
746
|
return __awaiter(this, void 0, void 0, function () {
|
|
696
|
-
var upQueries, downQueries, oldTable, _a, newTable, _b, schemaName, oldTableName, columnNames, oldPkName, newPkName, enumColumns, enumColumns_2, enumColumns_2_1, column, oldEnumType,
|
|
697
|
-
var
|
|
747
|
+
var upQueries, downQueries, oldTable, _a, newTable, _b, schemaName, oldTableName, columnNames, oldPkName, newPkName, enumColumns, enumColumns_2, enumColumns_2_1, column, oldEnumType, e_3_1;
|
|
748
|
+
var e_3, _c;
|
|
698
749
|
var _this = this;
|
|
699
750
|
return __generator(this, function (_d) {
|
|
700
751
|
switch (_d.label) {
|
|
@@ -792,14 +843,14 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
792
843
|
return [3 /*break*/, 5];
|
|
793
844
|
case 8: return [3 /*break*/, 11];
|
|
794
845
|
case 9:
|
|
795
|
-
|
|
796
|
-
|
|
846
|
+
e_3_1 = _d.sent();
|
|
847
|
+
e_3 = { error: e_3_1 };
|
|
797
848
|
return [3 /*break*/, 11];
|
|
798
849
|
case 10:
|
|
799
850
|
try {
|
|
800
851
|
if (enumColumns_2_1 && !enumColumns_2_1.done && (_c = enumColumns_2.return)) _c.call(enumColumns_2);
|
|
801
852
|
}
|
|
802
|
-
finally { if (
|
|
853
|
+
finally { if (e_3) throw e_3.error; }
|
|
803
854
|
return [7 /*endfinally*/];
|
|
804
855
|
case 11: return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
|
|
805
856
|
case 12:
|
|
@@ -814,7 +865,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
814
865
|
*/
|
|
815
866
|
PostgresQueryRunner.prototype.addColumn = function (tableOrName, column) {
|
|
816
867
|
return __awaiter(this, void 0, void 0, function () {
|
|
817
|
-
var table, _a, clonedTable, upQueries, downQueries, hasEnum, primaryColumns, pkName_1, columnNames_1, pkName, columnNames, columnIndex, uniqueConstraint;
|
|
868
|
+
var table, _a, clonedTable, upQueries, downQueries, hasEnum, primaryColumns, pkName_1, columnNames_1, pkName, columnNames, columnIndex, uniqueConstraint, tableNameWithSchema, tableName, schema, insertQuery, deleteQuery;
|
|
818
869
|
return __generator(this, function (_b) {
|
|
819
870
|
switch (_b.label) {
|
|
820
871
|
case 0:
|
|
@@ -873,13 +924,39 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
873
924
|
upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + uniqueConstraint.name + "\" UNIQUE (\"" + column.name + "\")"));
|
|
874
925
|
downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + uniqueConstraint.name + "\""));
|
|
875
926
|
}
|
|
927
|
+
if (!(column.generatedType === "STORED" && column.asExpression)) return [3 /*break*/, 7];
|
|
928
|
+
return [4 /*yield*/, this.getTableNameWithSchema(table.name)];
|
|
929
|
+
case 6:
|
|
930
|
+
tableNameWithSchema = (_b.sent()).split('.');
|
|
931
|
+
tableName = tableNameWithSchema[1];
|
|
932
|
+
schema = tableNameWithSchema[0];
|
|
933
|
+
insertQuery = this.insertTypeormMetadataSql({
|
|
934
|
+
database: this.driver.database,
|
|
935
|
+
schema: schema,
|
|
936
|
+
table: tableName,
|
|
937
|
+
type: MetadataTableType.GENERATED_COLUMN,
|
|
938
|
+
name: column.name,
|
|
939
|
+
value: column.asExpression
|
|
940
|
+
});
|
|
941
|
+
deleteQuery = this.deleteTypeormMetadataSql({
|
|
942
|
+
database: this.driver.database,
|
|
943
|
+
schema: schema,
|
|
944
|
+
table: tableName,
|
|
945
|
+
type: MetadataTableType.GENERATED_COLUMN,
|
|
946
|
+
name: column.name
|
|
947
|
+
});
|
|
948
|
+
upQueries.push(deleteQuery);
|
|
949
|
+
upQueries.push(insertQuery);
|
|
950
|
+
downQueries.push(deleteQuery);
|
|
951
|
+
_b.label = 7;
|
|
952
|
+
case 7:
|
|
876
953
|
// create column's comment
|
|
877
954
|
if (column.comment) {
|
|
878
955
|
upQueries.push(new Query("COMMENT ON COLUMN " + this.escapePath(table) + ".\"" + column.name + "\" IS " + this.escapeComment(column.comment)));
|
|
879
956
|
downQueries.push(new Query("COMMENT ON COLUMN " + this.escapePath(table) + ".\"" + column.name + "\" IS " + this.escapeComment(column.comment)));
|
|
880
957
|
}
|
|
881
958
|
return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
|
|
882
|
-
case
|
|
959
|
+
case 8:
|
|
883
960
|
_b.sent();
|
|
884
961
|
clonedTable.addColumn(column);
|
|
885
962
|
this.replaceCachedTable(table, clonedTable);
|
|
@@ -893,8 +970,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
893
970
|
*/
|
|
894
971
|
PostgresQueryRunner.prototype.addColumns = function (tableOrName, columns) {
|
|
895
972
|
return __awaiter(this, void 0, void 0, function () {
|
|
896
|
-
var columns_1, columns_1_1, column,
|
|
897
|
-
var
|
|
973
|
+
var columns_1, columns_1_1, column, e_4_1;
|
|
974
|
+
var e_4, _a;
|
|
898
975
|
return __generator(this, function (_b) {
|
|
899
976
|
switch (_b.label) {
|
|
900
977
|
case 0:
|
|
@@ -913,14 +990,14 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
913
990
|
return [3 /*break*/, 1];
|
|
914
991
|
case 4: return [3 /*break*/, 7];
|
|
915
992
|
case 5:
|
|
916
|
-
|
|
917
|
-
|
|
993
|
+
e_4_1 = _b.sent();
|
|
994
|
+
e_4 = { error: e_4_1 };
|
|
918
995
|
return [3 /*break*/, 7];
|
|
919
996
|
case 6:
|
|
920
997
|
try {
|
|
921
998
|
if (columns_1_1 && !columns_1_1.done && (_a = columns_1.return)) _a.call(columns_1);
|
|
922
999
|
}
|
|
923
|
-
finally { if (
|
|
1000
|
+
finally { if (e_4) throw e_4.error; }
|
|
924
1001
|
return [7 /*endfinally*/];
|
|
925
1002
|
case 7: return [2 /*return*/];
|
|
926
1003
|
}
|
|
@@ -965,7 +1042,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
965
1042
|
*/
|
|
966
1043
|
PostgresQueryRunner.prototype.changeColumn = function (tableOrName, oldTableColumnOrName, newColumn) {
|
|
967
1044
|
return __awaiter(this, void 0, void 0, function () {
|
|
968
|
-
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;
|
|
1045
|
+
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;
|
|
969
1046
|
var _this = this;
|
|
970
1047
|
return __generator(this, function (_b) {
|
|
971
1048
|
switch (_b.label) {
|
|
@@ -988,7 +1065,11 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
988
1065
|
: table.columns.find(function (column) { return column.name === oldTableColumnOrName; });
|
|
989
1066
|
if (!oldColumn)
|
|
990
1067
|
throw new TypeORMError("Column \"" + oldTableColumnOrName + "\" was not found in the \"" + table.name + "\" table.");
|
|
991
|
-
if (!(oldColumn.type !== newColumn.type
|
|
1068
|
+
if (!(oldColumn.type !== newColumn.type
|
|
1069
|
+
|| oldColumn.length !== newColumn.length
|
|
1070
|
+
|| newColumn.isArray !== oldColumn.isArray
|
|
1071
|
+
|| (!oldColumn.generatedType && newColumn.generatedType === "STORED")
|
|
1072
|
+
|| (oldColumn.asExpression !== newColumn.asExpression && newColumn.generatedType === "STORED"))) return [3 /*break*/, 6];
|
|
992
1073
|
// To avoid data conversion, we just recreate column
|
|
993
1074
|
return [4 /*yield*/, this.dropColumn(table, oldColumn)];
|
|
994
1075
|
case 4:
|
|
@@ -999,7 +1080,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
999
1080
|
_b.sent();
|
|
1000
1081
|
// update cloned table
|
|
1001
1082
|
clonedTable = table.clone();
|
|
1002
|
-
return [3 /*break*/,
|
|
1083
|
+
return [3 /*break*/, 11];
|
|
1003
1084
|
case 6:
|
|
1004
1085
|
if (!(oldColumn.name !== newColumn.name)) return [3 /*break*/, 9];
|
|
1005
1086
|
// rename column
|
|
@@ -1185,7 +1266,9 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
1185
1266
|
downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + uniqueConstraint.name + "\" UNIQUE (\"" + newColumn.name + "\")"));
|
|
1186
1267
|
}
|
|
1187
1268
|
}
|
|
1188
|
-
if (oldColumn.isGenerated !== newColumn.isGenerated &&
|
|
1269
|
+
if (oldColumn.isGenerated !== newColumn.isGenerated &&
|
|
1270
|
+
newColumn.generationStrategy !== "uuid" &&
|
|
1271
|
+
newColumn.generationStrategy !== "identity") {
|
|
1189
1272
|
if (newColumn.isGenerated === true) {
|
|
1190
1273
|
upQueries.push(new Query("CREATE SEQUENCE IF NOT EXISTS " + this.escapePath(this.buildSequencePath(table, newColumn)) + " OWNED BY " + this.escapePath(table) + ".\"" + newColumn.name + "\""));
|
|
1191
1274
|
downQueries.push(new Query("DROP SEQUENCE " + this.escapePath(this.buildSequencePath(table, newColumn))));
|
|
@@ -1219,9 +1302,45 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
1219
1302
|
upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" TYPE " + this.driver.createFullType(newColumn)));
|
|
1220
1303
|
downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" TYPE " + this.driver.createFullType(oldColumn)));
|
|
1221
1304
|
}
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1305
|
+
if (!(newColumn.generatedType !== oldColumn.generatedType)) return [3 /*break*/, 11];
|
|
1306
|
+
if (!(!newColumn.generatedType || newColumn.generatedType === "VIRTUAL")) return [3 /*break*/, 11];
|
|
1307
|
+
return [4 /*yield*/, this.getTableNameWithSchema(table.name)];
|
|
1308
|
+
case 10:
|
|
1309
|
+
tableNameWithSchema = (_b.sent()).split('.');
|
|
1310
|
+
tableName = tableNameWithSchema[1];
|
|
1311
|
+
schema = tableNameWithSchema[0];
|
|
1312
|
+
upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " RENAME COLUMN \"" + oldColumn.name + "\" TO \"TEMP_OLD_" + oldColumn.name + "\""));
|
|
1313
|
+
upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD " + this.buildCreateColumnSql(table, newColumn)));
|
|
1314
|
+
upQueries.push(new Query("UPDATE " + this.escapePath(table) + " SET \"" + newColumn.name + "\" = \"TEMP_OLD_" + oldColumn.name + "\""));
|
|
1315
|
+
upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP COLUMN \"TEMP_OLD_" + oldColumn.name + "\""));
|
|
1316
|
+
upQueries.push(this.deleteTypeormMetadataSql({
|
|
1317
|
+
database: this.driver.database,
|
|
1318
|
+
schema: schema,
|
|
1319
|
+
table: tableName,
|
|
1320
|
+
type: MetadataTableType.GENERATED_COLUMN,
|
|
1321
|
+
name: oldColumn.name
|
|
1322
|
+
}));
|
|
1323
|
+
// However, we can't copy it back on downgrade. It needs to regenerate.
|
|
1324
|
+
downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP COLUMN \"" + newColumn.name + "\""));
|
|
1325
|
+
downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD " + this.buildCreateColumnSql(table, oldColumn)));
|
|
1326
|
+
downQueries.push(this.deleteTypeormMetadataSql({
|
|
1327
|
+
database: this.driver.database,
|
|
1328
|
+
schema: schema,
|
|
1329
|
+
table: tableName,
|
|
1330
|
+
type: MetadataTableType.GENERATED_COLUMN,
|
|
1331
|
+
name: newColumn.name
|
|
1332
|
+
}));
|
|
1333
|
+
downQueries.push(this.insertTypeormMetadataSql({
|
|
1334
|
+
database: this.driver.database,
|
|
1335
|
+
schema: schema,
|
|
1336
|
+
table: tableName,
|
|
1337
|
+
type: MetadataTableType.GENERATED_COLUMN,
|
|
1338
|
+
name: oldColumn.name,
|
|
1339
|
+
value: oldColumn.asExpression
|
|
1340
|
+
}));
|
|
1341
|
+
_b.label = 11;
|
|
1342
|
+
case 11: return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
|
|
1343
|
+
case 12:
|
|
1225
1344
|
_b.sent();
|
|
1226
1345
|
this.replaceCachedTable(table, clonedTable);
|
|
1227
1346
|
return [2 /*return*/];
|
|
@@ -1234,8 +1353,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
1234
1353
|
*/
|
|
1235
1354
|
PostgresQueryRunner.prototype.changeColumns = function (tableOrName, changedColumns) {
|
|
1236
1355
|
return __awaiter(this, void 0, void 0, function () {
|
|
1237
|
-
var changedColumns_1, changedColumns_1_1, _a, oldColumn, newColumn,
|
|
1238
|
-
var
|
|
1356
|
+
var changedColumns_1, changedColumns_1_1, _a, oldColumn, newColumn, e_5_1;
|
|
1357
|
+
var e_5, _b;
|
|
1239
1358
|
return __generator(this, function (_c) {
|
|
1240
1359
|
switch (_c.label) {
|
|
1241
1360
|
case 0:
|
|
@@ -1254,14 +1373,14 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
1254
1373
|
return [3 /*break*/, 1];
|
|
1255
1374
|
case 4: return [3 /*break*/, 7];
|
|
1256
1375
|
case 5:
|
|
1257
|
-
|
|
1258
|
-
|
|
1376
|
+
e_5_1 = _c.sent();
|
|
1377
|
+
e_5 = { error: e_5_1 };
|
|
1259
1378
|
return [3 /*break*/, 7];
|
|
1260
1379
|
case 6:
|
|
1261
1380
|
try {
|
|
1262
1381
|
if (changedColumns_1_1 && !changedColumns_1_1.done && (_b = changedColumns_1.return)) _b.call(changedColumns_1);
|
|
1263
1382
|
}
|
|
1264
|
-
finally { if (
|
|
1383
|
+
finally { if (e_5) throw e_5.error; }
|
|
1265
1384
|
return [7 /*endfinally*/];
|
|
1266
1385
|
case 7: return [2 /*return*/];
|
|
1267
1386
|
}
|
|
@@ -1273,7 +1392,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
1273
1392
|
*/
|
|
1274
1393
|
PostgresQueryRunner.prototype.dropColumn = function (tableOrName, columnOrName) {
|
|
1275
1394
|
return __awaiter(this, void 0, void 0, function () {
|
|
1276
|
-
var table, _a, column, clonedTable, upQueries, downQueries, pkName, columnNames, tableColumn, pkName_2, columnNames_2, columnIndex, columnCheck, columnUnique, hasEnum, enumType, escapedEnumName;
|
|
1395
|
+
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;
|
|
1277
1396
|
return __generator(this, function (_b) {
|
|
1278
1397
|
switch (_b.label) {
|
|
1279
1398
|
case 0:
|
|
@@ -1340,8 +1459,33 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
1340
1459
|
upQueries.push(this.dropEnumTypeSql(table, column, escapedEnumName));
|
|
1341
1460
|
downQueries.push(this.createEnumTypeSql(table, column, escapedEnumName));
|
|
1342
1461
|
_b.label = 6;
|
|
1343
|
-
case 6:
|
|
1462
|
+
case 6:
|
|
1463
|
+
if (!(column.generatedType === "STORED")) return [3 /*break*/, 8];
|
|
1464
|
+
return [4 /*yield*/, this.getTableNameWithSchema(table.name)];
|
|
1344
1465
|
case 7:
|
|
1466
|
+
tableNameWithSchema = (_b.sent()).split('.');
|
|
1467
|
+
tableName = tableNameWithSchema[1];
|
|
1468
|
+
schema = tableNameWithSchema[0];
|
|
1469
|
+
insertQuery = this.deleteTypeormMetadataSql({
|
|
1470
|
+
database: this.driver.database,
|
|
1471
|
+
schema: schema,
|
|
1472
|
+
table: tableName,
|
|
1473
|
+
type: MetadataTableType.GENERATED_COLUMN,
|
|
1474
|
+
name: column.name
|
|
1475
|
+
});
|
|
1476
|
+
deleteQuery = this.insertTypeormMetadataSql({
|
|
1477
|
+
database: this.driver.database,
|
|
1478
|
+
schema: schema,
|
|
1479
|
+
table: tableName,
|
|
1480
|
+
type: MetadataTableType.GENERATED_COLUMN,
|
|
1481
|
+
name: column.name,
|
|
1482
|
+
value: column.asExpression
|
|
1483
|
+
});
|
|
1484
|
+
upQueries.push(insertQuery);
|
|
1485
|
+
downQueries.push(deleteQuery);
|
|
1486
|
+
_b.label = 8;
|
|
1487
|
+
case 8: return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
|
|
1488
|
+
case 9:
|
|
1345
1489
|
_b.sent();
|
|
1346
1490
|
clonedTable.removeColumn(column);
|
|
1347
1491
|
this.replaceCachedTable(table, clonedTable);
|
|
@@ -1355,8 +1499,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
1355
1499
|
*/
|
|
1356
1500
|
PostgresQueryRunner.prototype.dropColumns = function (tableOrName, columns) {
|
|
1357
1501
|
return __awaiter(this, void 0, void 0, function () {
|
|
1358
|
-
var columns_2, columns_2_1, column,
|
|
1359
|
-
var
|
|
1502
|
+
var columns_2, columns_2_1, column, e_6_1;
|
|
1503
|
+
var e_6, _a;
|
|
1360
1504
|
return __generator(this, function (_b) {
|
|
1361
1505
|
switch (_b.label) {
|
|
1362
1506
|
case 0:
|
|
@@ -1375,14 +1519,14 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
1375
1519
|
return [3 /*break*/, 1];
|
|
1376
1520
|
case 4: return [3 /*break*/, 7];
|
|
1377
1521
|
case 5:
|
|
1378
|
-
|
|
1379
|
-
|
|
1522
|
+
e_6_1 = _b.sent();
|
|
1523
|
+
e_6 = { error: e_6_1 };
|
|
1380
1524
|
return [3 /*break*/, 7];
|
|
1381
1525
|
case 6:
|
|
1382
1526
|
try {
|
|
1383
1527
|
if (columns_2_1 && !columns_2_1.done && (_a = columns_2.return)) _a.call(columns_2);
|
|
1384
1528
|
}
|
|
1385
|
-
finally { if (
|
|
1529
|
+
finally { if (e_6) throw e_6.error; }
|
|
1386
1530
|
return [7 /*endfinally*/];
|
|
1387
1531
|
case 7: return [2 /*return*/];
|
|
1388
1532
|
}
|
|
@@ -1538,8 +1682,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
1538
1682
|
*/
|
|
1539
1683
|
PostgresQueryRunner.prototype.createUniqueConstraints = function (tableOrName, uniqueConstraints) {
|
|
1540
1684
|
return __awaiter(this, void 0, void 0, function () {
|
|
1541
|
-
var uniqueConstraints_1, uniqueConstraints_1_1, uniqueConstraint,
|
|
1542
|
-
var
|
|
1685
|
+
var uniqueConstraints_1, uniqueConstraints_1_1, uniqueConstraint, e_7_1;
|
|
1686
|
+
var e_7, _a;
|
|
1543
1687
|
return __generator(this, function (_b) {
|
|
1544
1688
|
switch (_b.label) {
|
|
1545
1689
|
case 0:
|
|
@@ -1558,14 +1702,14 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
1558
1702
|
return [3 /*break*/, 1];
|
|
1559
1703
|
case 4: return [3 /*break*/, 7];
|
|
1560
1704
|
case 5:
|
|
1561
|
-
|
|
1562
|
-
|
|
1705
|
+
e_7_1 = _b.sent();
|
|
1706
|
+
e_7 = { error: e_7_1 };
|
|
1563
1707
|
return [3 /*break*/, 7];
|
|
1564
1708
|
case 6:
|
|
1565
1709
|
try {
|
|
1566
1710
|
if (uniqueConstraints_1_1 && !uniqueConstraints_1_1.done && (_a = uniqueConstraints_1.return)) _a.call(uniqueConstraints_1);
|
|
1567
1711
|
}
|
|
1568
|
-
finally { if (
|
|
1712
|
+
finally { if (e_7) throw e_7.error; }
|
|
1569
1713
|
return [7 /*endfinally*/];
|
|
1570
1714
|
case 7: return [2 /*return*/];
|
|
1571
1715
|
}
|
|
@@ -1609,8 +1753,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
1609
1753
|
*/
|
|
1610
1754
|
PostgresQueryRunner.prototype.dropUniqueConstraints = function (tableOrName, uniqueConstraints) {
|
|
1611
1755
|
return __awaiter(this, void 0, void 0, function () {
|
|
1612
|
-
var uniqueConstraints_2, uniqueConstraints_2_1, uniqueConstraint,
|
|
1613
|
-
var
|
|
1756
|
+
var uniqueConstraints_2, uniqueConstraints_2_1, uniqueConstraint, e_8_1;
|
|
1757
|
+
var e_8, _a;
|
|
1614
1758
|
return __generator(this, function (_b) {
|
|
1615
1759
|
switch (_b.label) {
|
|
1616
1760
|
case 0:
|
|
@@ -1629,14 +1773,14 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
1629
1773
|
return [3 /*break*/, 1];
|
|
1630
1774
|
case 4: return [3 /*break*/, 7];
|
|
1631
1775
|
case 5:
|
|
1632
|
-
|
|
1633
|
-
|
|
1776
|
+
e_8_1 = _b.sent();
|
|
1777
|
+
e_8 = { error: e_8_1 };
|
|
1634
1778
|
return [3 /*break*/, 7];
|
|
1635
1779
|
case 6:
|
|
1636
1780
|
try {
|
|
1637
1781
|
if (uniqueConstraints_2_1 && !uniqueConstraints_2_1.done && (_a = uniqueConstraints_2.return)) _a.call(uniqueConstraints_2);
|
|
1638
1782
|
}
|
|
1639
|
-
finally { if (
|
|
1783
|
+
finally { if (e_8) throw e_8.error; }
|
|
1640
1784
|
return [7 /*endfinally*/];
|
|
1641
1785
|
case 7: return [2 /*return*/];
|
|
1642
1786
|
}
|
|
@@ -1884,8 +2028,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
1884
2028
|
*/
|
|
1885
2029
|
PostgresQueryRunner.prototype.createForeignKeys = function (tableOrName, foreignKeys) {
|
|
1886
2030
|
return __awaiter(this, void 0, void 0, function () {
|
|
1887
|
-
var foreignKeys_1, foreignKeys_1_1, foreignKey,
|
|
1888
|
-
var
|
|
2031
|
+
var foreignKeys_1, foreignKeys_1_1, foreignKey, e_9_1;
|
|
2032
|
+
var e_9, _a;
|
|
1889
2033
|
return __generator(this, function (_b) {
|
|
1890
2034
|
switch (_b.label) {
|
|
1891
2035
|
case 0:
|
|
@@ -1904,14 +2048,14 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
1904
2048
|
return [3 /*break*/, 1];
|
|
1905
2049
|
case 4: return [3 /*break*/, 7];
|
|
1906
2050
|
case 5:
|
|
1907
|
-
|
|
1908
|
-
|
|
2051
|
+
e_9_1 = _b.sent();
|
|
2052
|
+
e_9 = { error: e_9_1 };
|
|
1909
2053
|
return [3 /*break*/, 7];
|
|
1910
2054
|
case 6:
|
|
1911
2055
|
try {
|
|
1912
2056
|
if (foreignKeys_1_1 && !foreignKeys_1_1.done && (_a = foreignKeys_1.return)) _a.call(foreignKeys_1);
|
|
1913
2057
|
}
|
|
1914
|
-
finally { if (
|
|
2058
|
+
finally { if (e_9) throw e_9.error; }
|
|
1915
2059
|
return [7 /*endfinally*/];
|
|
1916
2060
|
case 7: return [2 /*return*/];
|
|
1917
2061
|
}
|
|
@@ -1955,8 +2099,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
1955
2099
|
*/
|
|
1956
2100
|
PostgresQueryRunner.prototype.dropForeignKeys = function (tableOrName, foreignKeys) {
|
|
1957
2101
|
return __awaiter(this, void 0, void 0, function () {
|
|
1958
|
-
var foreignKeys_2, foreignKeys_2_1, foreignKey,
|
|
1959
|
-
var
|
|
2102
|
+
var foreignKeys_2, foreignKeys_2_1, foreignKey, e_10_1;
|
|
2103
|
+
var e_10, _a;
|
|
1960
2104
|
return __generator(this, function (_b) {
|
|
1961
2105
|
switch (_b.label) {
|
|
1962
2106
|
case 0:
|
|
@@ -1975,14 +2119,14 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
1975
2119
|
return [3 /*break*/, 1];
|
|
1976
2120
|
case 4: return [3 /*break*/, 7];
|
|
1977
2121
|
case 5:
|
|
1978
|
-
|
|
1979
|
-
|
|
2122
|
+
e_10_1 = _b.sent();
|
|
2123
|
+
e_10 = { error: e_10_1 };
|
|
1980
2124
|
return [3 /*break*/, 7];
|
|
1981
2125
|
case 6:
|
|
1982
2126
|
try {
|
|
1983
2127
|
if (foreignKeys_2_1 && !foreignKeys_2_1.done && (_a = foreignKeys_2.return)) _a.call(foreignKeys_2);
|
|
1984
2128
|
}
|
|
1985
|
-
finally { if (
|
|
2129
|
+
finally { if (e_10) throw e_10.error; }
|
|
1986
2130
|
return [7 /*endfinally*/];
|
|
1987
2131
|
case 7: return [2 /*return*/];
|
|
1988
2132
|
}
|
|
@@ -2026,8 +2170,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
2026
2170
|
*/
|
|
2027
2171
|
PostgresQueryRunner.prototype.createIndices = function (tableOrName, indices) {
|
|
2028
2172
|
return __awaiter(this, void 0, void 0, function () {
|
|
2029
|
-
var indices_1, indices_1_1, index,
|
|
2030
|
-
var
|
|
2173
|
+
var indices_1, indices_1_1, index, e_11_1;
|
|
2174
|
+
var e_11, _a;
|
|
2031
2175
|
return __generator(this, function (_b) {
|
|
2032
2176
|
switch (_b.label) {
|
|
2033
2177
|
case 0:
|
|
@@ -2046,14 +2190,14 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
2046
2190
|
return [3 /*break*/, 1];
|
|
2047
2191
|
case 4: return [3 /*break*/, 7];
|
|
2048
2192
|
case 5:
|
|
2049
|
-
|
|
2050
|
-
|
|
2193
|
+
e_11_1 = _b.sent();
|
|
2194
|
+
e_11 = { error: e_11_1 };
|
|
2051
2195
|
return [3 /*break*/, 7];
|
|
2052
2196
|
case 6:
|
|
2053
2197
|
try {
|
|
2054
2198
|
if (indices_1_1 && !indices_1_1.done && (_a = indices_1.return)) _a.call(indices_1);
|
|
2055
2199
|
}
|
|
2056
|
-
finally { if (
|
|
2200
|
+
finally { if (e_11) throw e_11.error; }
|
|
2057
2201
|
return [7 /*endfinally*/];
|
|
2058
2202
|
case 7: return [2 /*return*/];
|
|
2059
2203
|
}
|
|
@@ -2097,8 +2241,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
2097
2241
|
*/
|
|
2098
2242
|
PostgresQueryRunner.prototype.dropIndices = function (tableOrName, indices) {
|
|
2099
2243
|
return __awaiter(this, void 0, void 0, function () {
|
|
2100
|
-
var indices_2, indices_2_1, index,
|
|
2101
|
-
var
|
|
2244
|
+
var indices_2, indices_2_1, index, e_12_1;
|
|
2245
|
+
var e_12, _a;
|
|
2102
2246
|
return __generator(this, function (_b) {
|
|
2103
2247
|
switch (_b.label) {
|
|
2104
2248
|
case 0:
|
|
@@ -2117,14 +2261,14 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
2117
2261
|
return [3 /*break*/, 1];
|
|
2118
2262
|
case 4: return [3 /*break*/, 7];
|
|
2119
2263
|
case 5:
|
|
2120
|
-
|
|
2121
|
-
|
|
2264
|
+
e_12_1 = _b.sent();
|
|
2265
|
+
e_12 = { error: e_12_1 };
|
|
2122
2266
|
return [3 /*break*/, 7];
|
|
2123
2267
|
case 6:
|
|
2124
2268
|
try {
|
|
2125
2269
|
if (indices_2_1 && !indices_2_1.done && (_a = indices_2.return)) _a.call(indices_2);
|
|
2126
2270
|
}
|
|
2127
|
-
finally { if (
|
|
2271
|
+
finally { if (e_12) throw e_12.error; }
|
|
2128
2272
|
return [7 /*endfinally*/];
|
|
2129
2273
|
case 7: return [2 /*return*/];
|
|
2130
2274
|
}
|
|
@@ -2268,7 +2412,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
2268
2412
|
query = "SELECT \"t\".* FROM " + this.escapePath(this.getTypeormMetadataTableName()) + " \"t\" " +
|
|
2269
2413
|
"INNER JOIN \"pg_catalog\".\"pg_class\" \"c\" ON \"c\".\"relname\" = \"t\".\"name\" " +
|
|
2270
2414
|
"INNER JOIN \"pg_namespace\" \"n\" ON \"n\".\"oid\" = \"c\".\"relnamespace\" AND \"n\".\"nspname\" = \"t\".\"schema\" " +
|
|
2271
|
-
("WHERE \"t\".\"type\" IN ('VIEW', 'MATERIALIZED_VIEW') " + (viewsCondition ? "AND (" + viewsCondition + ")" : ""));
|
|
2415
|
+
("WHERE \"t\".\"type\" IN ('" + MetadataTableType.VIEW + "', '" + MetadataTableType.MATERIALIZED_VIEW + "') " + (viewsCondition ? "AND (" + viewsCondition + ")" : ""));
|
|
2272
2416
|
return [4 /*yield*/, this.query(query)];
|
|
2273
2417
|
case 4:
|
|
2274
2418
|
dbViews = _a.sent();
|
|
@@ -2279,7 +2423,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
2279
2423
|
view.schema = dbView["schema"];
|
|
2280
2424
|
view.name = _this.driver.buildTableName(dbView["name"], schema);
|
|
2281
2425
|
view.expression = dbView["value"];
|
|
2282
|
-
view.materialized = dbView["type"] ===
|
|
2426
|
+
view.materialized = dbView["type"] === MetadataTableType.MATERIALIZED_VIEW;
|
|
2283
2427
|
return view;
|
|
2284
2428
|
})];
|
|
2285
2429
|
}
|
|
@@ -2430,7 +2574,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
2430
2574
|
return [4 /*yield*/, Promise.all(dbColumns
|
|
2431
2575
|
.filter(function (dbColumn) { return (dbColumn["table_name"] === dbTable["table_name"] && dbColumn["table_schema"] === dbTable["table_schema"]); })
|
|
2432
2576
|
.map(function (dbColumn) { return __awaiter(_this, void 0, void 0, function () {
|
|
2433
|
-
var columnConstraints, tableColumn, name_1, builtEnumName, enumName, sql, results, type, geometryColumnSql, results, geographyColumnSql, results, length_1, match,
|
|
2577
|
+
var columnConstraints, tableColumn, name_1, builtEnumName, enumName, sql, results, type, geometryColumnSql, results, geographyColumnSql, results, length_1, match, uniqueConstraints, isConstraintComposite, serialDefaultName, serialDefaultPath, defaultWithoutQuotes, asExpressionQuery, results;
|
|
2434
2578
|
return __generator(this, function (_a) {
|
|
2435
2579
|
switch (_a.label) {
|
|
2436
2580
|
case 0:
|
|
@@ -2529,14 +2673,18 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
2529
2673
|
}
|
|
2530
2674
|
tableColumn.isNullable = dbColumn["is_nullable"] === "YES";
|
|
2531
2675
|
tableColumn.isPrimary = !!columnConstraints.find(function (constraint) { return constraint["constraint_type"] === "PRIMARY"; });
|
|
2532
|
-
|
|
2533
|
-
isConstraintComposite = uniqueConstraint
|
|
2534
|
-
|
|
2676
|
+
uniqueConstraints = columnConstraints.filter(function (constraint) { return constraint["constraint_type"] === "UNIQUE"; });
|
|
2677
|
+
isConstraintComposite = uniqueConstraints.every(function (uniqueConstraint) {
|
|
2678
|
+
return dbConstraints.some(function (dbConstraint) { return dbConstraint["constraint_type"] === "UNIQUE"
|
|
2535
2679
|
&& dbConstraint["constraint_name"] === uniqueConstraint["constraint_name"]
|
|
2536
|
-
&& dbConstraint["column_name"] !== dbColumn["column_name"]; })
|
|
2537
|
-
|
|
2538
|
-
tableColumn.isUnique =
|
|
2539
|
-
if (dbColumn
|
|
2680
|
+
&& dbConstraint["column_name"] !== dbColumn["column_name"]; });
|
|
2681
|
+
});
|
|
2682
|
+
tableColumn.isUnique = uniqueConstraints.length > 0 && !isConstraintComposite;
|
|
2683
|
+
if (dbColumn.is_identity === "YES") { // Postgres 10+ Identity column
|
|
2684
|
+
tableColumn.isGenerated = true;
|
|
2685
|
+
tableColumn.generationStrategy = "identity";
|
|
2686
|
+
}
|
|
2687
|
+
else if (dbColumn["column_default"] !== null && dbColumn["column_default"] !== undefined) {
|
|
2540
2688
|
serialDefaultName = "nextval('" + this.buildSequenceName(table, dbColumn["column_name"]) + "'::regclass)";
|
|
2541
2689
|
serialDefaultPath = "nextval('" + this.buildSequencePath(table, dbColumn["column_name"]) + "'::regclass)";
|
|
2542
2690
|
defaultWithoutQuotes = dbColumn["column_default"].replace(/"/g, "");
|
|
@@ -2552,10 +2700,30 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
2552
2700
|
tableColumn.default = dbColumn["column_default"];
|
|
2553
2701
|
}
|
|
2554
2702
|
else {
|
|
2555
|
-
tableColumn.default = dbColumn["column_default"].replace(/::[\w\s
|
|
2703
|
+
tableColumn.default = dbColumn["column_default"].replace(/::[\w\s\.\[\]\"]+/g, "");
|
|
2556
2704
|
tableColumn.default = tableColumn.default.replace(/^(-?\d+)$/, "'$1'");
|
|
2557
2705
|
}
|
|
2558
2706
|
}
|
|
2707
|
+
if (!(dbColumn["is_generated"] === "ALWAYS" && dbColumn["generation_expression"])) return [3 /*break*/, 9];
|
|
2708
|
+
// In postgres there is no VIRTUAL generated column type
|
|
2709
|
+
tableColumn.generatedType = "STORED";
|
|
2710
|
+
asExpressionQuery = "SELECT * FROM \"typeorm_metadata\" "
|
|
2711
|
+
+ (" WHERE \"table\" = '" + dbTable["table_name"] + "'")
|
|
2712
|
+
+ (" AND \"name\" = '" + tableColumn.name + "'")
|
|
2713
|
+
+ (" AND \"schema\" = '" + dbTable["table_schema"] + "'")
|
|
2714
|
+
+ (" AND \"database\" = '" + this.driver.database + "'")
|
|
2715
|
+
+ (" AND \"type\" = '" + MetadataTableType.GENERATED_COLUMN + "'");
|
|
2716
|
+
return [4 /*yield*/, this.query(asExpressionQuery)];
|
|
2717
|
+
case 8:
|
|
2718
|
+
results = _a.sent();
|
|
2719
|
+
if (results[0] && results[0].value) {
|
|
2720
|
+
tableColumn.asExpression = results[0].value;
|
|
2721
|
+
}
|
|
2722
|
+
else {
|
|
2723
|
+
tableColumn.asExpression = "";
|
|
2724
|
+
}
|
|
2725
|
+
_a.label = 9;
|
|
2726
|
+
case 9:
|
|
2559
2727
|
tableColumn.comment = dbColumn["description"] ? dbColumn["description"] : undefined;
|
|
2560
2728
|
if (dbColumn["character_set_name"])
|
|
2561
2729
|
tableColumn.charset = dbColumn["character_set_name"];
|
|
@@ -2753,24 +2921,19 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
2753
2921
|
};
|
|
2754
2922
|
PostgresQueryRunner.prototype.insertViewDefinitionSql = function (view) {
|
|
2755
2923
|
return __awaiter(this, void 0, void 0, function () {
|
|
2756
|
-
var currentSchema, _a, schema, name, type, expression
|
|
2757
|
-
return __generator(this, function (
|
|
2758
|
-
switch (
|
|
2924
|
+
var currentSchema, _a, schema, name, type, expression;
|
|
2925
|
+
return __generator(this, function (_b) {
|
|
2926
|
+
switch (_b.label) {
|
|
2759
2927
|
case 0: return [4 /*yield*/, this.getCurrentSchema()];
|
|
2760
2928
|
case 1:
|
|
2761
|
-
currentSchema =
|
|
2929
|
+
currentSchema = _b.sent();
|
|
2762
2930
|
_a = this.driver.parseTableName(view), schema = _a.schema, name = _a.tableName;
|
|
2763
2931
|
if (!schema) {
|
|
2764
2932
|
schema = currentSchema;
|
|
2765
2933
|
}
|
|
2766
|
-
type = view.materialized ?
|
|
2934
|
+
type = view.materialized ? MetadataTableType.MATERIALIZED_VIEW : MetadataTableType.VIEW;
|
|
2767
2935
|
expression = typeof view.expression === "string" ? view.expression.trim() : view.expression(this.connection).getQuery();
|
|
2768
|
-
|
|
2769
|
-
.insert()
|
|
2770
|
-
.into(this.getTypeormMetadataTableName())
|
|
2771
|
-
.values({ type: type, schema: schema, name: name, value: expression })
|
|
2772
|
-
.getQueryAndParameters(), 2), query = _b[0], parameters = _b[1];
|
|
2773
|
-
return [2 /*return*/, new Query(query, parameters)];
|
|
2936
|
+
return [2 /*return*/, this.insertTypeormMetadataSql({ type: type, schema: schema, name: name, value: expression })];
|
|
2774
2937
|
}
|
|
2775
2938
|
});
|
|
2776
2939
|
});
|
|
@@ -2787,25 +2950,18 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
2787
2950
|
*/
|
|
2788
2951
|
PostgresQueryRunner.prototype.deleteViewDefinitionSql = function (view) {
|
|
2789
2952
|
return __awaiter(this, void 0, void 0, function () {
|
|
2790
|
-
var currentSchema, _a, schema, name, type
|
|
2791
|
-
return __generator(this, function (
|
|
2792
|
-
switch (
|
|
2953
|
+
var currentSchema, _a, schema, name, type;
|
|
2954
|
+
return __generator(this, function (_b) {
|
|
2955
|
+
switch (_b.label) {
|
|
2793
2956
|
case 0: return [4 /*yield*/, this.getCurrentSchema()];
|
|
2794
2957
|
case 1:
|
|
2795
|
-
currentSchema =
|
|
2958
|
+
currentSchema = _b.sent();
|
|
2796
2959
|
_a = this.driver.parseTableName(view), schema = _a.schema, name = _a.tableName;
|
|
2797
2960
|
if (!schema) {
|
|
2798
2961
|
schema = currentSchema;
|
|
2799
2962
|
}
|
|
2800
|
-
type = view.materialized ?
|
|
2801
|
-
|
|
2802
|
-
_b = __read(qb.delete()
|
|
2803
|
-
.from(this.getTypeormMetadataTableName())
|
|
2804
|
-
.where(qb.escape("type") + " = :type", { type: type })
|
|
2805
|
-
.andWhere(qb.escape("schema") + " = :schema", { schema: schema })
|
|
2806
|
-
.andWhere(qb.escape("name") + " = :name", { name: name })
|
|
2807
|
-
.getQueryAndParameters(), 2), query = _b[0], parameters = _b[1];
|
|
2808
|
-
return [2 /*return*/, new Query(query, parameters)];
|
|
2963
|
+
type = view.materialized ? MetadataTableType.MATERIALIZED_VIEW : MetadataTableType.VIEW;
|
|
2964
|
+
return [2 /*return*/, this.deleteTypeormMetadataSql({ type: type, schema: schema, name: name })];
|
|
2809
2965
|
}
|
|
2810
2966
|
});
|
|
2811
2967
|
});
|
|
@@ -3056,18 +3212,45 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
3056
3212
|
}
|
|
3057
3213
|
return "\"" + tableName + "\"";
|
|
3058
3214
|
};
|
|
3215
|
+
/**
|
|
3216
|
+
* Get the table name with table schema
|
|
3217
|
+
* Note: Without ' or "
|
|
3218
|
+
*/
|
|
3219
|
+
PostgresQueryRunner.prototype.getTableNameWithSchema = function (target) {
|
|
3220
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
3221
|
+
var tableName, schemaResult, schema;
|
|
3222
|
+
return __generator(this, function (_a) {
|
|
3223
|
+
switch (_a.label) {
|
|
3224
|
+
case 0:
|
|
3225
|
+
tableName = target instanceof Table ? target.name : target;
|
|
3226
|
+
if (!(tableName.indexOf(".") === -1)) return [3 /*break*/, 2];
|
|
3227
|
+
return [4 /*yield*/, this.query("SELECT current_schema()")];
|
|
3228
|
+
case 1:
|
|
3229
|
+
schemaResult = _a.sent();
|
|
3230
|
+
schema = schemaResult[0]["current_schema"];
|
|
3231
|
+
return [2 /*return*/, schema + "." + tableName];
|
|
3232
|
+
case 2: return [2 /*return*/, tableName.split(".")[0] + "." + tableName.split(".")[1]];
|
|
3233
|
+
}
|
|
3234
|
+
});
|
|
3235
|
+
});
|
|
3236
|
+
};
|
|
3059
3237
|
/**
|
|
3060
3238
|
* Builds a query for create column.
|
|
3061
3239
|
*/
|
|
3062
3240
|
PostgresQueryRunner.prototype.buildCreateColumnSql = function (table, column) {
|
|
3063
3241
|
var c = "\"" + column.name + "\"";
|
|
3064
3242
|
if (column.isGenerated === true && column.generationStrategy !== "uuid") {
|
|
3065
|
-
if (column.
|
|
3066
|
-
c += "
|
|
3067
|
-
|
|
3068
|
-
|
|
3069
|
-
|
|
3070
|
-
|
|
3243
|
+
if (column.generationStrategy === "identity") { // Postgres 10+ Identity generated column
|
|
3244
|
+
c += " " + column.type + " GENERATED BY DEFAULT AS IDENTITY";
|
|
3245
|
+
}
|
|
3246
|
+
else { // classic SERIAL primary column
|
|
3247
|
+
if (column.type === "integer" || column.type === "int" || column.type === "int4")
|
|
3248
|
+
c += " SERIAL";
|
|
3249
|
+
if (column.type === "smallint" || column.type === "int2")
|
|
3250
|
+
c += " SMALLSERIAL";
|
|
3251
|
+
if (column.type === "bigint" || column.type === "int8")
|
|
3252
|
+
c += " BIGSERIAL";
|
|
3253
|
+
}
|
|
3071
3254
|
}
|
|
3072
3255
|
if (column.type === "enum" || column.type === "simple-enum") {
|
|
3073
3256
|
c += " " + this.buildEnumName(table, column);
|
|
@@ -3077,16 +3260,23 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
3077
3260
|
else if (!column.isGenerated || column.type === "uuid") {
|
|
3078
3261
|
c += " " + this.connection.driver.createFullType(column);
|
|
3079
3262
|
}
|
|
3080
|
-
|
|
3081
|
-
|
|
3082
|
-
if (column.
|
|
3083
|
-
c += "
|
|
3084
|
-
|
|
3085
|
-
|
|
3086
|
-
|
|
3087
|
-
|
|
3088
|
-
|
|
3089
|
-
|
|
3263
|
+
// CHARACTER SET, COLLATE, NOT NULL and DEFAULT do not exist on generated (virtual) columns
|
|
3264
|
+
// Also, postgres only supports the stored generated column type
|
|
3265
|
+
if (column.generatedType === "STORED" && column.asExpression) {
|
|
3266
|
+
c += " GENERATED ALWAYS AS (" + column.asExpression + ") STORED";
|
|
3267
|
+
}
|
|
3268
|
+
else {
|
|
3269
|
+
if (column.charset)
|
|
3270
|
+
c += " CHARACTER SET \"" + column.charset + "\"";
|
|
3271
|
+
if (column.collation)
|
|
3272
|
+
c += " COLLATE \"" + column.collation + "\"";
|
|
3273
|
+
if (column.isNullable !== true)
|
|
3274
|
+
c += " NOT NULL";
|
|
3275
|
+
if (column.default !== undefined && column.default !== null)
|
|
3276
|
+
c += " DEFAULT " + column.default;
|
|
3277
|
+
if (column.isGenerated && column.generationStrategy === "uuid" && !column.default)
|
|
3278
|
+
c += " DEFAULT " + this.driver.uuidGenerator;
|
|
3279
|
+
}
|
|
3090
3280
|
return c;
|
|
3091
3281
|
};
|
|
3092
3282
|
/**
|