typeorm 0.3.6-dev.1197d1d → 0.3.6-dev.2d8afbe
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +33 -13
- package/browser/cache/DbQueryResultCache.js +9 -1
- package/browser/cache/DbQueryResultCache.js.map +1 -1
- package/browser/cache/RedisQueryResultCache.js +3 -0
- package/browser/cache/RedisQueryResultCache.js.map +1 -1
- package/browser/data-source/DataSourceOptions.d.ts +2 -1
- package/browser/data-source/DataSourceOptions.js.map +1 -1
- package/browser/decorator/Index.js +1 -0
- package/browser/decorator/Index.js.map +1 -1
- package/browser/decorator/columns/PrimaryColumn.js +4 -1
- package/browser/decorator/columns/PrimaryColumn.js.map +1 -1
- package/browser/decorator/options/ColumnOptions.d.ts +2 -2
- package/browser/decorator/options/ColumnOptions.js.map +1 -1
- package/browser/decorator/options/IndexOptions.d.ts +8 -0
- package/browser/decorator/options/IndexOptions.js.map +1 -1
- package/browser/driver/DriverFactory.js +4 -0
- package/browser/driver/DriverFactory.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachDriver.js +4 -1
- package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachQueryRunner.js +133 -11
- package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/browser/driver/mysql/MysqlDriver.d.ts +1 -0
- package/browser/driver/mysql/MysqlDriver.js +94 -23
- package/browser/driver/mysql/MysqlDriver.js.map +1 -1
- package/browser/driver/mysql/MysqlQueryRunner.js +203 -24
- package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/browser/driver/oracle/OracleDriver.js +79 -15
- package/browser/driver/oracle/OracleDriver.js.map +1 -1
- package/browser/driver/oracle/OracleQueryRunner.js +118 -21
- package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/browser/driver/postgres/PostgresDriver.js +95 -18
- package/browser/driver/postgres/PostgresDriver.js.map +1 -1
- package/browser/driver/postgres/PostgresQueryRunner.js +60 -38
- package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/browser/driver/spanner/SpannerConnectionCredentialsOptions.d.ts +17 -0
- package/browser/driver/spanner/SpannerConnectionCredentialsOptions.js +3 -0
- package/browser/driver/spanner/SpannerConnectionCredentialsOptions.js.map +1 -0
- package/browser/driver/spanner/SpannerConnectionOptions.d.ts +120 -0
- package/browser/driver/spanner/SpannerConnectionOptions.js +3 -0
- package/browser/driver/spanner/SpannerConnectionOptions.js.map +1 -0
- package/browser/driver/spanner/SpannerDriver.d.ts +241 -0
- package/browser/driver/spanner/SpannerDriver.js +604 -0
- package/browser/driver/spanner/SpannerDriver.js.map +1 -0
- package/browser/driver/spanner/SpannerQueryRunner.d.ts +350 -0
- package/browser/driver/spanner/SpannerQueryRunner.js +1445 -0
- package/browser/driver/spanner/SpannerQueryRunner.js.map +1 -0
- package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +21 -16
- package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +165 -20
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerDriver.d.ts +3 -1
- package/browser/driver/sqlserver/SqlServerDriver.js +99 -26
- package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerQueryRunner.js +153 -17
- package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/browser/driver/types/ColumnTypes.d.ts +1 -1
- package/browser/driver/types/ColumnTypes.js.map +1 -1
- package/browser/driver/types/DatabaseType.d.ts +1 -1
- package/browser/driver/types/DatabaseType.js.map +1 -1
- package/browser/entity-schema/EntitySchemaColumnOptions.d.ts +2 -2
- package/browser/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaIndexOptions.d.ts +8 -0
- package/browser/entity-schema/EntitySchemaIndexOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaTransformer.js +1 -0
- package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
- package/browser/find-options/FindOneOptions.d.ts +1 -1
- package/browser/find-options/FindOneOptions.js.map +1 -1
- package/browser/find-options/FindOptionsUtils.d.ts +2 -1
- package/browser/find-options/FindOptionsUtils.js +2 -1
- package/browser/find-options/FindOptionsUtils.js.map +1 -1
- package/browser/logger/AdvancedConsoleLogger.d.ts +1 -1
- package/browser/logger/AdvancedConsoleLogger.js +1 -1
- package/browser/logger/AdvancedConsoleLogger.js.map +1 -1
- package/browser/metadata/ColumnMetadata.d.ts +2 -2
- package/browser/metadata/ColumnMetadata.js.map +1 -1
- package/browser/metadata/IndexMetadata.d.ts +8 -0
- package/browser/metadata/IndexMetadata.js +9 -0
- package/browser/metadata/IndexMetadata.js.map +1 -1
- package/browser/metadata-args/IndexMetadataArgs.d.ts +8 -0
- package/browser/metadata-args/IndexMetadataArgs.js.map +1 -1
- package/browser/metadata-builder/EntityMetadataBuilder.js +13 -6
- package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
- package/browser/metadata-builder/EntityMetadataValidator.js +8 -0
- package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
- package/browser/metadata-builder/JunctionEntityMetadataBuilder.js +13 -6
- package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
- package/browser/platform/PlatformTools.js +5 -0
- package/browser/platform/PlatformTools.js.map +1 -1
- package/browser/query-builder/InsertQueryBuilder.js +15 -3
- package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
- package/browser/query-builder/QueryExpressionMap.d.ts +1 -1
- package/browser/query-builder/QueryExpressionMap.js.map +1 -1
- package/browser/query-builder/SelectQueryBuilder.d.ts +1 -1
- package/browser/query-builder/SelectQueryBuilder.js +25 -4
- package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
- package/browser/query-builder/UpdateQueryBuilder.js +18 -7
- package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
- package/browser/query-runner/BaseQueryRunner.d.ts +10 -0
- package/browser/query-runner/BaseQueryRunner.js +25 -1
- package/browser/query-runner/BaseQueryRunner.js.map +1 -1
- package/browser/schema-builder/RdbmsSchemaBuilder.d.ts +6 -2
- package/browser/schema-builder/RdbmsSchemaBuilder.js +26 -6
- package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
- package/browser/schema-builder/options/TableColumnOptions.d.ts +2 -2
- package/browser/schema-builder/options/TableColumnOptions.js.map +1 -1
- package/browser/schema-builder/options/TableIndexOptions.d.ts +8 -0
- package/browser/schema-builder/options/TableIndexOptions.js.map +1 -1
- package/browser/schema-builder/table/TableColumn.d.ts +2 -2
- package/browser/schema-builder/table/TableColumn.js.map +1 -1
- package/browser/schema-builder/table/TableIndex.d.ts +8 -0
- package/browser/schema-builder/table/TableIndex.js +3 -0
- package/browser/schema-builder/table/TableIndex.js.map +1 -1
- package/cache/DbQueryResultCache.js +9 -1
- package/cache/DbQueryResultCache.js.map +1 -1
- package/cache/RedisQueryResultCache.js +3 -0
- package/cache/RedisQueryResultCache.js.map +1 -1
- package/commands/InitCommand.js +1 -1
- package/commands/InitCommand.js.map +1 -1
- package/data-source/DataSourceOptions.d.ts +2 -1
- package/data-source/DataSourceOptions.js.map +1 -1
- package/decorator/Index.js +1 -0
- package/decorator/Index.js.map +1 -1
- package/decorator/columns/PrimaryColumn.js +4 -1
- package/decorator/columns/PrimaryColumn.js.map +1 -1
- package/decorator/options/ColumnOptions.d.ts +2 -2
- package/decorator/options/ColumnOptions.js.map +1 -1
- package/decorator/options/IndexOptions.d.ts +8 -0
- package/decorator/options/IndexOptions.js.map +1 -1
- package/driver/DriverFactory.js +4 -0
- package/driver/DriverFactory.js.map +1 -1
- package/driver/cockroachdb/CockroachDriver.js +4 -1
- package/driver/cockroachdb/CockroachDriver.js.map +1 -1
- package/driver/cockroachdb/CockroachQueryRunner.js +133 -11
- package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/driver/mysql/MysqlDriver.d.ts +1 -0
- package/driver/mysql/MysqlDriver.js +94 -23
- package/driver/mysql/MysqlDriver.js.map +1 -1
- package/driver/mysql/MysqlQueryRunner.js +203 -24
- package/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/driver/oracle/OracleDriver.js +79 -15
- package/driver/oracle/OracleDriver.js.map +1 -1
- package/driver/oracle/OracleQueryRunner.js +118 -21
- package/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/driver/postgres/PostgresDriver.js +95 -18
- package/driver/postgres/PostgresDriver.js.map +1 -1
- package/driver/postgres/PostgresQueryRunner.js +60 -38
- package/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/driver/spanner/SpannerConnectionCredentialsOptions.d.ts +17 -0
- package/driver/spanner/SpannerConnectionCredentialsOptions.js +4 -0
- package/driver/spanner/SpannerConnectionCredentialsOptions.js.map +1 -0
- package/driver/spanner/SpannerConnectionOptions.d.ts +120 -0
- package/driver/spanner/SpannerConnectionOptions.js +4 -0
- package/driver/spanner/SpannerConnectionOptions.js.map +1 -0
- package/driver/spanner/SpannerDriver.d.ts +241 -0
- package/driver/spanner/SpannerDriver.js +608 -0
- package/driver/spanner/SpannerDriver.js.map +1 -0
- package/driver/spanner/SpannerQueryRunner.d.ts +350 -0
- package/driver/spanner/SpannerQueryRunner.js +1449 -0
- package/driver/spanner/SpannerQueryRunner.js.map +1 -0
- package/driver/sqlite-abstract/AbstractSqliteDriver.js +21 -16
- package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +165 -20
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/driver/sqlserver/SqlServerDriver.d.ts +3 -1
- package/driver/sqlserver/SqlServerDriver.js +99 -26
- package/driver/sqlserver/SqlServerDriver.js.map +1 -1
- package/driver/sqlserver/SqlServerQueryRunner.js +153 -17
- package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/driver/types/ColumnTypes.d.ts +1 -1
- package/driver/types/ColumnTypes.js.map +1 -1
- package/driver/types/DatabaseType.d.ts +1 -1
- package/driver/types/DatabaseType.js.map +1 -1
- package/entity-schema/EntitySchemaColumnOptions.d.ts +2 -2
- package/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
- package/entity-schema/EntitySchemaIndexOptions.d.ts +8 -0
- package/entity-schema/EntitySchemaIndexOptions.js.map +1 -1
- package/entity-schema/EntitySchemaTransformer.js +1 -0
- package/entity-schema/EntitySchemaTransformer.js.map +1 -1
- package/find-options/FindOneOptions.d.ts +1 -1
- package/find-options/FindOneOptions.js.map +1 -1
- package/find-options/FindOptionsUtils.d.ts +2 -1
- package/find-options/FindOptionsUtils.js +2 -1
- package/find-options/FindOptionsUtils.js.map +1 -1
- package/logger/AdvancedConsoleLogger.d.ts +1 -1
- package/logger/AdvancedConsoleLogger.js +1 -1
- package/logger/AdvancedConsoleLogger.js.map +1 -1
- package/metadata/ColumnMetadata.d.ts +2 -2
- package/metadata/ColumnMetadata.js.map +1 -1
- package/metadata/IndexMetadata.d.ts +8 -0
- package/metadata/IndexMetadata.js +9 -0
- package/metadata/IndexMetadata.js.map +1 -1
- package/metadata-args/IndexMetadataArgs.d.ts +8 -0
- package/metadata-args/IndexMetadataArgs.js.map +1 -1
- package/metadata-builder/EntityMetadataBuilder.js +13 -6
- package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
- package/metadata-builder/EntityMetadataValidator.js +8 -0
- package/metadata-builder/EntityMetadataValidator.js.map +1 -1
- package/metadata-builder/JunctionEntityMetadataBuilder.js +13 -6
- package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
- package/package.json +1 -1
- package/platform/PlatformTools.js +5 -0
- package/platform/PlatformTools.js.map +1 -1
- package/query-builder/InsertQueryBuilder.js +15 -3
- package/query-builder/InsertQueryBuilder.js.map +1 -1
- package/query-builder/QueryExpressionMap.d.ts +1 -1
- package/query-builder/QueryExpressionMap.js.map +1 -1
- package/query-builder/SelectQueryBuilder.d.ts +1 -1
- package/query-builder/SelectQueryBuilder.js +25 -4
- package/query-builder/SelectQueryBuilder.js.map +1 -1
- package/query-builder/UpdateQueryBuilder.js +18 -7
- package/query-builder/UpdateQueryBuilder.js.map +1 -1
- package/query-runner/BaseQueryRunner.d.ts +10 -0
- package/query-runner/BaseQueryRunner.js +25 -1
- package/query-runner/BaseQueryRunner.js.map +1 -1
- package/schema-builder/RdbmsSchemaBuilder.d.ts +6 -2
- package/schema-builder/RdbmsSchemaBuilder.js +26 -6
- package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
- package/schema-builder/options/TableColumnOptions.d.ts +2 -2
- package/schema-builder/options/TableColumnOptions.js.map +1 -1
- package/schema-builder/options/TableIndexOptions.d.ts +8 -0
- package/schema-builder/options/TableIndexOptions.js.map +1 -1
- package/schema-builder/table/TableColumn.d.ts +2 -2
- package/schema-builder/table/TableColumn.js.map +1 -1
- package/schema-builder/table/TableIndex.d.ts +8 -0
- package/schema-builder/table/TableIndex.js +3 -0
- package/schema-builder/table/TableIndex.js.map +1 -1
|
@@ -383,6 +383,30 @@ class CockroachQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
383
383
|
downQueries.push(this.dropIndexSql(table, index));
|
|
384
384
|
});
|
|
385
385
|
}
|
|
386
|
+
// if table have column with generated type, we must add the expression to the metadata table
|
|
387
|
+
const generatedColumns = table.columns.filter((column) => column.generatedType && column.asExpression);
|
|
388
|
+
for (const column of generatedColumns) {
|
|
389
|
+
const currentSchema = await this.getCurrentSchema();
|
|
390
|
+
let { schema } = this.driver.parseTableName(table);
|
|
391
|
+
if (!schema) {
|
|
392
|
+
schema = currentSchema;
|
|
393
|
+
}
|
|
394
|
+
const insertQuery = this.insertTypeormMetadataSql({
|
|
395
|
+
schema: schema,
|
|
396
|
+
table: table.name,
|
|
397
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
398
|
+
name: column.name,
|
|
399
|
+
value: column.asExpression,
|
|
400
|
+
});
|
|
401
|
+
const deleteQuery = this.deleteTypeormMetadataSql({
|
|
402
|
+
schema: schema,
|
|
403
|
+
table: table.name,
|
|
404
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
405
|
+
name: column.name,
|
|
406
|
+
});
|
|
407
|
+
upQueries.push(insertQuery);
|
|
408
|
+
downQueries.push(deleteQuery);
|
|
409
|
+
}
|
|
386
410
|
await this.executeQueries(upQueries, downQueries);
|
|
387
411
|
}
|
|
388
412
|
/**
|
|
@@ -420,6 +444,30 @@ class CockroachQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
420
444
|
upQueries.push(new Query_1.Query(`DROP SEQUENCE ${this.escapePath(this.buildSequencePath(table, column))}`));
|
|
421
445
|
downQueries.push(new Query_1.Query(`CREATE SEQUENCE ${this.escapePath(this.buildSequencePath(table, column))}`));
|
|
422
446
|
});
|
|
447
|
+
// if table had columns with generated type, we must remove the expression from the metadata table
|
|
448
|
+
const generatedColumns = table.columns.filter((column) => column.generatedType && column.asExpression);
|
|
449
|
+
for (const column of generatedColumns) {
|
|
450
|
+
const currentSchema = await this.getCurrentSchema();
|
|
451
|
+
let { schema } = this.driver.parseTableName(table);
|
|
452
|
+
if (!schema) {
|
|
453
|
+
schema = currentSchema;
|
|
454
|
+
}
|
|
455
|
+
const deleteQuery = this.deleteTypeormMetadataSql({
|
|
456
|
+
schema: schema,
|
|
457
|
+
table: table.name,
|
|
458
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
459
|
+
name: column.name,
|
|
460
|
+
});
|
|
461
|
+
const insertQuery = this.insertTypeormMetadataSql({
|
|
462
|
+
schema: schema,
|
|
463
|
+
table: table.name,
|
|
464
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
465
|
+
name: column.name,
|
|
466
|
+
value: column.asExpression,
|
|
467
|
+
});
|
|
468
|
+
upQueries.push(deleteQuery);
|
|
469
|
+
downQueries.push(insertQuery);
|
|
470
|
+
}
|
|
423
471
|
await this.executeQueries(upQueries, downQueries);
|
|
424
472
|
}
|
|
425
473
|
/**
|
|
@@ -547,6 +595,28 @@ class CockroachQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
547
595
|
upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNames})`));
|
|
548
596
|
downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${pkName}"`));
|
|
549
597
|
}
|
|
598
|
+
if (column.generatedType && column.asExpression) {
|
|
599
|
+
const currentSchema = await this.getCurrentSchema();
|
|
600
|
+
let { schema } = this.driver.parseTableName(table);
|
|
601
|
+
if (!schema) {
|
|
602
|
+
schema = currentSchema;
|
|
603
|
+
}
|
|
604
|
+
const insertQuery = this.insertTypeormMetadataSql({
|
|
605
|
+
schema: schema,
|
|
606
|
+
table: table.name,
|
|
607
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
608
|
+
name: column.name,
|
|
609
|
+
value: column.asExpression,
|
|
610
|
+
});
|
|
611
|
+
const deleteQuery = this.deleteTypeormMetadataSql({
|
|
612
|
+
schema: schema,
|
|
613
|
+
table: table.name,
|
|
614
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
615
|
+
name: column.name,
|
|
616
|
+
});
|
|
617
|
+
upQueries.push(insertQuery);
|
|
618
|
+
downQueries.push(deleteQuery);
|
|
619
|
+
}
|
|
550
620
|
// create column index
|
|
551
621
|
const columnIndex = clonedTable.indices.find((index) => index.columnNames.length === 1 &&
|
|
552
622
|
index.columnNames[0] === column.name);
|
|
@@ -631,7 +701,9 @@ class CockroachQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
631
701
|
if (!oldColumn)
|
|
632
702
|
throw new error_1.TypeORMError(`Column "${oldTableColumnOrName}" was not found in the "${table.name}" table.`);
|
|
633
703
|
if (oldColumn.type !== newColumn.type ||
|
|
634
|
-
oldColumn.length !== newColumn.length
|
|
704
|
+
oldColumn.length !== newColumn.length ||
|
|
705
|
+
oldColumn.generatedType !== newColumn.generatedType ||
|
|
706
|
+
oldColumn.asExpression !== newColumn.asExpression) {
|
|
635
707
|
// To avoid data conversion, we just recreate column
|
|
636
708
|
await this.dropColumn(table, oldColumn);
|
|
637
709
|
await this.addColumn(table, newColumn);
|
|
@@ -904,6 +976,28 @@ class CockroachQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
904
976
|
upQueries.push(new Query_1.Query(`DROP SEQUENCE ${this.escapePath(this.buildSequencePath(table, column))}`));
|
|
905
977
|
downQueries.push(new Query_1.Query(`CREATE SEQUENCE ${this.escapePath(this.buildSequencePath(table, column))}`));
|
|
906
978
|
}
|
|
979
|
+
if (column.generatedType && column.asExpression) {
|
|
980
|
+
const currentSchema = await this.getCurrentSchema();
|
|
981
|
+
let { schema } = this.driver.parseTableName(table);
|
|
982
|
+
if (!schema) {
|
|
983
|
+
schema = currentSchema;
|
|
984
|
+
}
|
|
985
|
+
const deleteQuery = this.deleteTypeormMetadataSql({
|
|
986
|
+
schema: schema,
|
|
987
|
+
table: table.name,
|
|
988
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
989
|
+
name: column.name,
|
|
990
|
+
});
|
|
991
|
+
const insertQuery = this.insertTypeormMetadataSql({
|
|
992
|
+
schema: schema,
|
|
993
|
+
table: table.name,
|
|
994
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
995
|
+
name: column.name,
|
|
996
|
+
value: column.asExpression,
|
|
997
|
+
});
|
|
998
|
+
upQueries.push(deleteQuery);
|
|
999
|
+
downQueries.push(insertQuery);
|
|
1000
|
+
}
|
|
907
1001
|
await this.executeQueries(upQueries, downQueries);
|
|
908
1002
|
clonedTable.removeColumn(column);
|
|
909
1003
|
this.replaceCachedTable(table, clonedTable);
|
|
@@ -1338,12 +1432,14 @@ class CockroachQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1338
1432
|
return `("table_schema" = '${table_schema}' AND "table_name" = '${table_name}')`;
|
|
1339
1433
|
})
|
|
1340
1434
|
.join(" OR ");
|
|
1341
|
-
const columnsSql = `
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1435
|
+
const columnsSql = `SELECT "columns".*, "attr"."attgenerated" as "generated_type", ` +
|
|
1436
|
+
`pg_catalog.col_description(('"' || table_catalog || '"."' || table_schema || '"."' || table_name || '"')::regclass::oid, ordinal_position) as description ` +
|
|
1437
|
+
`FROM "information_schema"."columns" ` +
|
|
1438
|
+
`LEFT JOIN "pg_class" AS "cls" ON "cls"."relname" = "table_name" ` +
|
|
1439
|
+
`LEFT JOIN "pg_namespace" AS "ns" ON "ns"."oid" = "cls"."relnamespace" AND "ns"."nspname" = "table_schema" ` +
|
|
1440
|
+
`LEFT JOIN "pg_attribute" AS "attr" ON "attr"."attrelid" = "cls"."oid" AND "attr"."attname" = "column_name" AND "attr"."attnum" = "ordinal_position" ` +
|
|
1441
|
+
`WHERE "is_hidden" = 'NO' AND ` +
|
|
1442
|
+
columnsCondiiton;
|
|
1347
1443
|
const constraintsCondition = dbTables
|
|
1348
1444
|
.map(({ table_name, table_schema }) => {
|
|
1349
1445
|
return `("ns"."nspname" = '${table_schema}' AND "t"."relname" = '${table_name}')`;
|
|
@@ -1512,6 +1608,27 @@ class CockroachQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1512
1608
|
tableColumn.default.replace(/^(-?[\d\.]+)$/, "($1)");
|
|
1513
1609
|
}
|
|
1514
1610
|
}
|
|
1611
|
+
if (dbColumn["is_generated"] === "YES" &&
|
|
1612
|
+
dbColumn["generation_expression"]) {
|
|
1613
|
+
tableColumn.generatedType =
|
|
1614
|
+
dbColumn["generated_type"] === "s"
|
|
1615
|
+
? "STORED"
|
|
1616
|
+
: "VIRTUAL";
|
|
1617
|
+
// We cannot relay on information_schema.columns.generation_expression, because it is formatted different.
|
|
1618
|
+
const asExpressionQuery = await this.selectTypeormMetadataSql({
|
|
1619
|
+
schema: dbTable["table_schema"],
|
|
1620
|
+
table: dbTable["table_name"],
|
|
1621
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
1622
|
+
name: tableColumn.name,
|
|
1623
|
+
});
|
|
1624
|
+
const results = await this.query(asExpressionQuery.query, asExpressionQuery.parameters);
|
|
1625
|
+
if (results[0] && results[0].value) {
|
|
1626
|
+
tableColumn.asExpression = results[0].value;
|
|
1627
|
+
}
|
|
1628
|
+
else {
|
|
1629
|
+
tableColumn.asExpression = "";
|
|
1630
|
+
}
|
|
1631
|
+
}
|
|
1515
1632
|
tableColumn.comment =
|
|
1516
1633
|
dbColumn["description"] == null
|
|
1517
1634
|
? undefined
|
|
@@ -1904,10 +2021,15 @@ class CockroachQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1904
2021
|
}
|
|
1905
2022
|
if (!column.isGenerated)
|
|
1906
2023
|
c += " " + this.connection.driver.createFullType(column);
|
|
1907
|
-
if (column.
|
|
1908
|
-
c +=
|
|
1909
|
-
|
|
1910
|
-
|
|
2024
|
+
if (column.asExpression) {
|
|
2025
|
+
c += ` AS (${column.asExpression}) ${column.generatedType ? column.generatedType : "VIRTUAL"}`;
|
|
2026
|
+
}
|
|
2027
|
+
else {
|
|
2028
|
+
if (column.charset)
|
|
2029
|
+
c += ' CHARACTER SET "' + column.charset + '"';
|
|
2030
|
+
if (column.collation)
|
|
2031
|
+
c += ' COLLATE "' + column.collation + '"';
|
|
2032
|
+
}
|
|
1911
2033
|
if (!column.isNullable)
|
|
1912
2034
|
c += " NOT NULL";
|
|
1913
2035
|
if (!column.isGenerated &&
|