typeorm 0.3.6-dev.9d331b1 → 0.3.6-dev.bbdc20f
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 +34 -14
- 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 +10 -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/decorator/options/JoinColumnOptions.d.ts +4 -0
- package/browser/decorator/options/JoinColumnOptions.js.map +1 -1
- package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.d.ts +4 -0
- package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -1
- package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.d.ts +4 -0
- package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
- package/browser/decorator/options/PrimaryGeneratedColumnUUIDOptions.d.ts +4 -0
- package/browser/decorator/options/PrimaryGeneratedColumnUUIDOptions.js.map +1 -1
- package/browser/decorator/relations/JoinColumn.js +1 -0
- package/browser/decorator/relations/JoinColumn.js.map +1 -1
- package/browser/driver/DriverFactory.js +4 -0
- package/browser/driver/DriverFactory.js.map +1 -1
- package/browser/driver/aurora-mysql/AuroraMysqlDriver.d.ts +1 -1
- package/browser/driver/aurora-mysql/AuroraMysqlDriver.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.d.ts +3 -3
- package/browser/driver/cockroachdb/CockroachQueryRunner.js +233 -33
- package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/browser/driver/mongodb/typings.d.ts +5 -5
- package/browser/driver/mongodb/typings.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 +219 -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.d.ts +3 -3
- package/browser/driver/oracle/OracleQueryRunner.js +216 -42
- 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.d.ts +3 -3
- package/browser/driver/postgres/PostgresQueryRunner.js +159 -59
- 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 +65 -16
- package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +218 -32
- 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.d.ts +3 -3
- package/browser/driver/sqlserver/SqlServerQueryRunner.js +251 -37
- package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.d.ts +1 -1
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -1
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.d.ts +2 -2
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -1
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.d.ts +2 -2
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -1
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.d.ts +2 -2
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.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-manager/EntityManager.js +1 -1
- package/browser/entity-manager/EntityManager.js.map +1 -1
- package/browser/entity-schema/EntitySchemaColumnOptions.d.ts +6 -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 +3 -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 +10 -2
- package/browser/metadata/ColumnMetadata.js +8 -0
- package/browser/metadata/ColumnMetadata.js.map +1 -1
- package/browser/metadata/EntityMetadata.js +1 -1
- package/browser/metadata/EntityMetadata.js.map +1 -1
- package/browser/metadata/ForeignKeyMetadata.d.ts +7 -0
- package/browser/metadata/ForeignKeyMetadata.js +4 -1
- package/browser/metadata/ForeignKeyMetadata.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-args/JoinColumnMetadataArgs.d.ts +4 -0
- package/browser/metadata-args/JoinColumnMetadataArgs.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 +17 -0
- package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
- package/browser/metadata-builder/JunctionEntityMetadataBuilder.js +18 -6
- package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
- package/browser/metadata-builder/RelationJoinColumnBuilder.js +2 -0
- package/browser/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
- package/browser/migration/MigrationExecutor.js +1 -1
- package/browser/migration/MigrationExecutor.js.map +1 -1
- package/browser/persistence/SubjectDatabaseEntityLoader.d.ts +1 -1
- package/browser/persistence/SubjectDatabaseEntityLoader.js +1 -1
- package/browser/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
- package/browser/persistence/SubjectExecutor.js +1 -1
- package/browser/persistence/SubjectExecutor.js.map +1 -1
- package/browser/persistence/subject-builder/CascadesSubjectBuilder.d.ts +1 -1
- package/browser/persistence/subject-builder/CascadesSubjectBuilder.js +1 -1
- package/browser/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
- package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js +1 -1
- package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
- package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +1 -1
- package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.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/QueryBuilder.d.ts +1 -1
- package/browser/query-builder/QueryBuilder.js +15 -15
- package/browser/query-builder/QueryBuilder.js.map +1 -1
- package/browser/query-builder/QueryExpressionMap.d.ts +2 -2
- package/browser/query-builder/QueryExpressionMap.js +1 -1
- package/browser/query-builder/QueryExpressionMap.js.map +1 -1
- package/browser/query-builder/ReturningResultsEntityUpdator.js +2 -2
- package/browser/query-builder/ReturningResultsEntityUpdator.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/query-runner/QueryRunner.d.ts +2 -2
- package/browser/query-runner/QueryRunner.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 +10 -2
- package/browser/schema-builder/options/TableColumnOptions.js.map +1 -1
- package/browser/schema-builder/options/TableForeignKeyOptions.d.ts +1 -1
- package/browser/schema-builder/options/TableForeignKeyOptions.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 +6 -2
- package/browser/schema-builder/table/TableColumn.js +2 -0
- 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/browser/schema-builder/util/TableUtils.js +1 -0
- package/browser/schema-builder/util/TableUtils.js.map +1 -1
- package/browser/util/OrmUtils.d.ts +1 -1
- package/browser/util/OrmUtils.js +4 -4
- package/browser/util/OrmUtils.js.map +1 -1
- package/browser/util/escapeRegExp.d.ts +1 -0
- package/browser/util/escapeRegExp.js +6 -0
- package/browser/util/escapeRegExp.js.map +1 -0
- 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/commands/MigrationGenerateCommand.js +3 -2
- package/commands/MigrationGenerateCommand.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 +10 -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/decorator/options/JoinColumnOptions.d.ts +4 -0
- package/decorator/options/JoinColumnOptions.js.map +1 -1
- package/decorator/options/PrimaryGeneratedColumnIdentityOptions.d.ts +4 -0
- package/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -1
- package/decorator/options/PrimaryGeneratedColumnNumericOptions.d.ts +4 -0
- package/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
- package/decorator/options/PrimaryGeneratedColumnUUIDOptions.d.ts +4 -0
- package/decorator/options/PrimaryGeneratedColumnUUIDOptions.js.map +1 -1
- package/decorator/relations/JoinColumn.js +1 -0
- package/decorator/relations/JoinColumn.js.map +1 -1
- package/driver/DriverFactory.js +4 -0
- package/driver/DriverFactory.js.map +1 -1
- package/driver/aurora-mysql/AuroraMysqlDriver.d.ts +1 -1
- package/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
- package/driver/cockroachdb/CockroachDriver.js +4 -1
- package/driver/cockroachdb/CockroachDriver.js.map +1 -1
- package/driver/cockroachdb/CockroachQueryRunner.d.ts +3 -3
- package/driver/cockroachdb/CockroachQueryRunner.js +233 -33
- package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/driver/mongodb/typings.d.ts +5 -5
- package/driver/mongodb/typings.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 +219 -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.d.ts +3 -3
- package/driver/oracle/OracleQueryRunner.js +216 -42
- 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.d.ts +3 -3
- package/driver/postgres/PostgresQueryRunner.js +159 -59
- 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 +65 -16
- package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +218 -32
- 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.d.ts +3 -3
- package/driver/sqlserver/SqlServerQueryRunner.js +251 -37
- package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.d.ts +1 -1
- package/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -1
- package/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.d.ts +2 -2
- package/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -1
- package/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.d.ts +2 -2
- package/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -1
- package/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.d.ts +2 -2
- package/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.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-manager/EntityManager.js +1 -1
- package/entity-manager/EntityManager.js.map +1 -1
- package/entity-schema/EntitySchemaColumnOptions.d.ts +6 -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 +3 -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 +10 -2
- package/metadata/ColumnMetadata.js +8 -0
- package/metadata/ColumnMetadata.js.map +1 -1
- package/metadata/EntityMetadata.js +1 -1
- package/metadata/EntityMetadata.js.map +1 -1
- package/metadata/ForeignKeyMetadata.d.ts +7 -0
- package/metadata/ForeignKeyMetadata.js +4 -1
- package/metadata/ForeignKeyMetadata.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-args/JoinColumnMetadataArgs.d.ts +4 -0
- package/metadata-args/JoinColumnMetadataArgs.js.map +1 -1
- package/metadata-builder/EntityMetadataBuilder.js +13 -6
- package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
- package/metadata-builder/EntityMetadataValidator.js +17 -0
- package/metadata-builder/EntityMetadataValidator.js.map +1 -1
- package/metadata-builder/JunctionEntityMetadataBuilder.js +18 -6
- package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
- package/metadata-builder/RelationJoinColumnBuilder.js +2 -0
- package/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
- package/migration/MigrationExecutor.js +1 -1
- package/migration/MigrationExecutor.js.map +1 -1
- package/package.json +1 -1
- package/persistence/SubjectDatabaseEntityLoader.d.ts +1 -1
- package/persistence/SubjectDatabaseEntityLoader.js +1 -1
- package/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
- package/persistence/SubjectExecutor.js +1 -1
- package/persistence/SubjectExecutor.js.map +1 -1
- package/persistence/subject-builder/CascadesSubjectBuilder.d.ts +1 -1
- package/persistence/subject-builder/CascadesSubjectBuilder.js +1 -1
- package/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
- package/persistence/subject-builder/ManyToManySubjectBuilder.js +1 -1
- package/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
- package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +1 -1
- package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +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/QueryBuilder.d.ts +1 -1
- package/query-builder/QueryBuilder.js +15 -15
- package/query-builder/QueryBuilder.js.map +1 -1
- package/query-builder/QueryExpressionMap.d.ts +2 -2
- package/query-builder/QueryExpressionMap.js +1 -1
- package/query-builder/QueryExpressionMap.js.map +1 -1
- package/query-builder/ReturningResultsEntityUpdator.js +2 -2
- package/query-builder/ReturningResultsEntityUpdator.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/query-runner/QueryRunner.d.ts +2 -2
- package/query-runner/QueryRunner.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 +10 -2
- package/schema-builder/options/TableColumnOptions.js.map +1 -1
- package/schema-builder/options/TableForeignKeyOptions.d.ts +1 -1
- package/schema-builder/options/TableForeignKeyOptions.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 +6 -2
- package/schema-builder/table/TableColumn.js +2 -0
- 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
- package/schema-builder/util/TableUtils.js +1 -0
- package/schema-builder/util/TableUtils.js.map +1 -1
- package/util/OrmUtils.d.ts +1 -1
- package/util/OrmUtils.js +4 -4
- package/util/OrmUtils.js.map +1 -1
- package/util/escapeRegExp.d.ts +1 -0
- package/util/escapeRegExp.js +10 -0
- package/util/escapeRegExp.js.map +1 -0
|
@@ -389,7 +389,6 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
389
389
|
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
390
390
|
name: column.name,
|
|
391
391
|
});
|
|
392
|
-
upQueries.push(deleteQuery);
|
|
393
392
|
upQueries.push(insertQuery);
|
|
394
393
|
downQueries.push(deleteQuery);
|
|
395
394
|
}
|
|
@@ -437,6 +436,30 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
437
436
|
table.foreignKeys.forEach((foreignKey) => upQueries.push(this.dropForeignKeySql(table, foreignKey)));
|
|
438
437
|
upQueries.push(this.dropTableSql(table));
|
|
439
438
|
downQueries.push(this.createTableSql(table, createForeignKeys));
|
|
439
|
+
// if table had columns with generated type, we must remove the expression from the metadata table
|
|
440
|
+
const generatedColumns = table.columns.filter((column) => column.generatedType && column.asExpression);
|
|
441
|
+
for (const column of generatedColumns) {
|
|
442
|
+
const tableNameWithSchema = (await this.getTableNameWithSchema(table.name)).split(".");
|
|
443
|
+
const tableName = tableNameWithSchema[1];
|
|
444
|
+
const schema = tableNameWithSchema[0];
|
|
445
|
+
const deleteQuery = this.deleteTypeormMetadataSql({
|
|
446
|
+
database: this.driver.database,
|
|
447
|
+
schema,
|
|
448
|
+
table: tableName,
|
|
449
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
450
|
+
name: column.name,
|
|
451
|
+
});
|
|
452
|
+
const insertQuery = this.insertTypeormMetadataSql({
|
|
453
|
+
database: this.driver.database,
|
|
454
|
+
schema,
|
|
455
|
+
table: tableName,
|
|
456
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
457
|
+
name: column.name,
|
|
458
|
+
value: column.asExpression,
|
|
459
|
+
});
|
|
460
|
+
upQueries.push(deleteQuery);
|
|
461
|
+
downQueries.push(insertQuery);
|
|
462
|
+
}
|
|
440
463
|
await this.executeQueries(upQueries, downQueries);
|
|
441
464
|
}
|
|
442
465
|
/**
|
|
@@ -481,8 +504,9 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
481
504
|
: newTableName;
|
|
482
505
|
upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(oldTable)} RENAME TO "${newTableName}"`));
|
|
483
506
|
downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(newTable)} RENAME TO "${oldTableName}"`));
|
|
484
|
-
// rename column primary key constraint
|
|
485
|
-
if (newTable.primaryColumns.length > 0
|
|
507
|
+
// rename column primary key constraint if it has default constraint name
|
|
508
|
+
if (newTable.primaryColumns.length > 0 &&
|
|
509
|
+
!newTable.primaryColumns[0].primaryKeyConstraintName) {
|
|
486
510
|
const columnNames = newTable.primaryColumns.map((column) => column.name);
|
|
487
511
|
const oldPkName = this.connection.namingStrategy.primaryKeyName(oldTable, columnNames);
|
|
488
512
|
const newPkName = this.connection.namingStrategy.primaryKeyName(newTable, columnNames);
|
|
@@ -504,6 +528,10 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
504
528
|
});
|
|
505
529
|
// rename unique constraints
|
|
506
530
|
newTable.uniques.forEach((unique) => {
|
|
531
|
+
const oldUniqueName = this.connection.namingStrategy.uniqueConstraintName(oldTable, unique.columnNames);
|
|
532
|
+
// Skip renaming if Unique has user defined constraint name
|
|
533
|
+
if (unique.name !== oldUniqueName)
|
|
534
|
+
return;
|
|
507
535
|
// build new constraint name
|
|
508
536
|
const newUniqueName = this.connection.namingStrategy.uniqueConstraintName(newTable, unique.columnNames);
|
|
509
537
|
// build queries
|
|
@@ -514,6 +542,10 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
514
542
|
});
|
|
515
543
|
// rename index constraints
|
|
516
544
|
newTable.indices.forEach((index) => {
|
|
545
|
+
const oldIndexName = this.connection.namingStrategy.indexName(oldTable, index.columnNames, index.where);
|
|
546
|
+
// Skip renaming if Index has user defined constraint name
|
|
547
|
+
if (index.name !== oldIndexName)
|
|
548
|
+
return;
|
|
517
549
|
// build new constraint name
|
|
518
550
|
const { schema } = this.driver.parseTableName(newTable);
|
|
519
551
|
const newIndexName = this.connection.namingStrategy.indexName(newTable, index.columnNames, index.where);
|
|
@@ -531,6 +563,10 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
531
563
|
});
|
|
532
564
|
// rename foreign key constraints
|
|
533
565
|
newTable.foreignKeys.forEach((foreignKey) => {
|
|
566
|
+
const oldForeignKeyName = this.connection.namingStrategy.foreignKeyName(oldTable, foreignKey.columnNames, this.getTablePath(foreignKey), foreignKey.referencedColumnNames);
|
|
567
|
+
// Skip renaming if foreign key has user defined constraint name
|
|
568
|
+
if (foreignKey.name !== oldForeignKeyName)
|
|
569
|
+
return;
|
|
534
570
|
// build new constraint name
|
|
535
571
|
const newForeignKeyName = this.connection.namingStrategy.foreignKeyName(newTable, foreignKey.columnNames, this.getTablePath(foreignKey), foreignKey.referencedColumnNames);
|
|
536
572
|
// build queries
|
|
@@ -575,7 +611,9 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
575
611
|
const primaryColumns = clonedTable.primaryColumns;
|
|
576
612
|
// if table already have primary key, me must drop it and recreate again
|
|
577
613
|
if (primaryColumns.length > 0) {
|
|
578
|
-
const pkName =
|
|
614
|
+
const pkName = primaryColumns[0].primaryKeyConstraintName
|
|
615
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
616
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
|
|
579
617
|
const columnNames = primaryColumns
|
|
580
618
|
.map((column) => `"${column.name}"`)
|
|
581
619
|
.join(", ");
|
|
@@ -583,7 +621,9 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
583
621
|
downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNames})`));
|
|
584
622
|
}
|
|
585
623
|
primaryColumns.push(column);
|
|
586
|
-
const pkName =
|
|
624
|
+
const pkName = primaryColumns[0].primaryKeyConstraintName
|
|
625
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
626
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
|
|
587
627
|
const columnNames = primaryColumns
|
|
588
628
|
.map((column) => `"${column.name}"`)
|
|
589
629
|
.join(", ");
|
|
@@ -626,7 +666,6 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
626
666
|
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
627
667
|
name: column.name,
|
|
628
668
|
});
|
|
629
|
-
upQueries.push(deleteQuery);
|
|
630
669
|
upQueries.push(insertQuery);
|
|
631
670
|
downQueries.push(deleteQuery);
|
|
632
671
|
}
|
|
@@ -711,7 +750,8 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
711
750
|
downQueries.push(new Query_1.Query(`ALTER TYPE ${this.buildEnumName(table, newColumn)} RENAME TO "${oldEnumType.name}"`));
|
|
712
751
|
}
|
|
713
752
|
// rename column primary key constraint
|
|
714
|
-
if (oldColumn.isPrimary === true
|
|
753
|
+
if (oldColumn.isPrimary === true &&
|
|
754
|
+
!oldColumn.primaryKeyConstraintName) {
|
|
715
755
|
const primaryColumns = clonedTable.primaryColumns;
|
|
716
756
|
// build old primary constraint name
|
|
717
757
|
const columnNames = primaryColumns.map((column) => column.name);
|
|
@@ -738,6 +778,10 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
738
778
|
}
|
|
739
779
|
// rename unique constraints
|
|
740
780
|
clonedTable.findColumnUniques(oldColumn).forEach((unique) => {
|
|
781
|
+
const oldUniqueName = this.connection.namingStrategy.uniqueConstraintName(clonedTable, unique.columnNames);
|
|
782
|
+
// Skip renaming if Unique has user defined constraint name
|
|
783
|
+
if (unique.name !== oldUniqueName)
|
|
784
|
+
return;
|
|
741
785
|
// build new constraint name
|
|
742
786
|
unique.columnNames.splice(unique.columnNames.indexOf(oldColumn.name), 1);
|
|
743
787
|
unique.columnNames.push(newColumn.name);
|
|
@@ -750,6 +794,10 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
750
794
|
});
|
|
751
795
|
// rename index constraints
|
|
752
796
|
clonedTable.findColumnIndices(oldColumn).forEach((index) => {
|
|
797
|
+
const oldIndexName = this.connection.namingStrategy.indexName(clonedTable, index.columnNames, index.where);
|
|
798
|
+
// Skip renaming if Index has user defined constraint name
|
|
799
|
+
if (index.name !== oldIndexName)
|
|
800
|
+
return;
|
|
753
801
|
// build new constraint name
|
|
754
802
|
index.columnNames.splice(index.columnNames.indexOf(oldColumn.name), 1);
|
|
755
803
|
index.columnNames.push(newColumn.name);
|
|
@@ -771,6 +819,10 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
771
819
|
clonedTable
|
|
772
820
|
.findColumnForeignKeys(oldColumn)
|
|
773
821
|
.forEach((foreignKey) => {
|
|
822
|
+
const foreignKeyName = this.connection.namingStrategy.foreignKeyName(clonedTable, foreignKey.columnNames, this.getTablePath(foreignKey), foreignKey.referencedColumnNames);
|
|
823
|
+
// Skip renaming if foreign key has user defined constraint name
|
|
824
|
+
if (foreignKey.name !== foreignKeyName)
|
|
825
|
+
return;
|
|
774
826
|
// build new constraint name
|
|
775
827
|
foreignKey.columnNames.splice(foreignKey.columnNames.indexOf(oldColumn.name), 1);
|
|
776
828
|
foreignKey.columnNames.push(newColumn.name);
|
|
@@ -856,7 +908,9 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
856
908
|
const primaryColumns = clonedTable.primaryColumns;
|
|
857
909
|
// if primary column state changed, we must always drop existed constraint.
|
|
858
910
|
if (primaryColumns.length > 0) {
|
|
859
|
-
const pkName =
|
|
911
|
+
const pkName = primaryColumns[0].primaryKeyConstraintName
|
|
912
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
913
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
|
|
860
914
|
const columnNames = primaryColumns
|
|
861
915
|
.map((column) => `"${column.name}"`)
|
|
862
916
|
.join(", ");
|
|
@@ -868,7 +922,9 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
868
922
|
// update column in table
|
|
869
923
|
const column = clonedTable.columns.find((column) => column.name === newColumn.name);
|
|
870
924
|
column.isPrimary = true;
|
|
871
|
-
const pkName =
|
|
925
|
+
const pkName = primaryColumns[0].primaryKeyConstraintName
|
|
926
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
927
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
|
|
872
928
|
const columnNames = primaryColumns
|
|
873
929
|
.map((column) => `"${column.name}"`)
|
|
874
930
|
.join(", ");
|
|
@@ -883,7 +939,10 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
883
939
|
column.isPrimary = false;
|
|
884
940
|
// if we have another primary keys, we must recreate constraint.
|
|
885
941
|
if (primaryColumns.length > 0) {
|
|
886
|
-
const pkName =
|
|
942
|
+
const pkName = primaryColumns[0]
|
|
943
|
+
.primaryKeyConstraintName
|
|
944
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
945
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
|
|
887
946
|
const columnNames = primaryColumns
|
|
888
947
|
.map((column) => `"${column.name}"`)
|
|
889
948
|
.join(", ");
|
|
@@ -997,15 +1056,6 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
997
1056
|
name: oldColumn.name,
|
|
998
1057
|
}));
|
|
999
1058
|
// However, we can't copy it back on downgrade. It needs to regenerate.
|
|
1000
|
-
downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP COLUMN "${newColumn.name}"`));
|
|
1001
|
-
downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD ${this.buildCreateColumnSql(table, oldColumn)}`));
|
|
1002
|
-
downQueries.push(this.deleteTypeormMetadataSql({
|
|
1003
|
-
database: this.driver.database,
|
|
1004
|
-
schema,
|
|
1005
|
-
table: tableName,
|
|
1006
|
-
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
1007
|
-
name: newColumn.name,
|
|
1008
|
-
}));
|
|
1009
1059
|
downQueries.push(this.insertTypeormMetadataSql({
|
|
1010
1060
|
database: this.driver.database,
|
|
1011
1061
|
schema,
|
|
@@ -1014,6 +1064,17 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1014
1064
|
name: oldColumn.name,
|
|
1015
1065
|
value: oldColumn.asExpression,
|
|
1016
1066
|
}));
|
|
1067
|
+
downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD ${this.buildCreateColumnSql(table, oldColumn)}`));
|
|
1068
|
+
downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP COLUMN "${newColumn.name}"`));
|
|
1069
|
+
// downQueries.push(
|
|
1070
|
+
// this.deleteTypeormMetadataSql({
|
|
1071
|
+
// database: this.driver.database,
|
|
1072
|
+
// schema,
|
|
1073
|
+
// table: tableName,
|
|
1074
|
+
// type: MetadataTableType.GENERATED_COLUMN,
|
|
1075
|
+
// name: newColumn.name,
|
|
1076
|
+
// }),
|
|
1077
|
+
// )
|
|
1017
1078
|
}
|
|
1018
1079
|
}
|
|
1019
1080
|
}
|
|
@@ -1045,7 +1106,9 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1045
1106
|
const downQueries = [];
|
|
1046
1107
|
// drop primary key constraint
|
|
1047
1108
|
if (column.isPrimary) {
|
|
1048
|
-
const pkName =
|
|
1109
|
+
const pkName = column.primaryKeyConstraintName
|
|
1110
|
+
? column.primaryKeyConstraintName
|
|
1111
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, clonedTable.primaryColumns.map((column) => column.name));
|
|
1049
1112
|
const columnNames = clonedTable.primaryColumns
|
|
1050
1113
|
.map((primaryColumn) => `"${primaryColumn.name}"`)
|
|
1051
1114
|
.join(", ");
|
|
@@ -1056,7 +1119,10 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1056
1119
|
tableColumn.isPrimary = false;
|
|
1057
1120
|
// if primary key have multiple columns, we must recreate it without dropped column
|
|
1058
1121
|
if (clonedTable.primaryColumns.length > 0) {
|
|
1059
|
-
const pkName =
|
|
1122
|
+
const pkName = clonedTable.primaryColumns[0]
|
|
1123
|
+
.primaryKeyConstraintName
|
|
1124
|
+
? clonedTable.primaryColumns[0].primaryKeyConstraintName
|
|
1125
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, clonedTable.primaryColumns.map((column) => column.name));
|
|
1060
1126
|
const columnNames = clonedTable.primaryColumns
|
|
1061
1127
|
.map((primaryColumn) => `"${primaryColumn.name}"`)
|
|
1062
1128
|
.join(", ");
|
|
@@ -1105,14 +1171,14 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1105
1171
|
const tableNameWithSchema = (await this.getTableNameWithSchema(table.name)).split(".");
|
|
1106
1172
|
const tableName = tableNameWithSchema[1];
|
|
1107
1173
|
const schema = tableNameWithSchema[0];
|
|
1108
|
-
const
|
|
1174
|
+
const deleteQuery = this.deleteTypeormMetadataSql({
|
|
1109
1175
|
database: this.driver.database,
|
|
1110
1176
|
schema,
|
|
1111
1177
|
table: tableName,
|
|
1112
1178
|
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
1113
1179
|
name: column.name,
|
|
1114
1180
|
});
|
|
1115
|
-
const
|
|
1181
|
+
const insertQuery = this.insertTypeormMetadataSql({
|
|
1116
1182
|
database: this.driver.database,
|
|
1117
1183
|
schema,
|
|
1118
1184
|
table: tableName,
|
|
@@ -1120,8 +1186,8 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1120
1186
|
name: column.name,
|
|
1121
1187
|
value: column.asExpression,
|
|
1122
1188
|
});
|
|
1123
|
-
upQueries.push(
|
|
1124
|
-
downQueries.push(
|
|
1189
|
+
upQueries.push(deleteQuery);
|
|
1190
|
+
downQueries.push(insertQuery);
|
|
1125
1191
|
}
|
|
1126
1192
|
await this.executeQueries(upQueries, downQueries);
|
|
1127
1193
|
clonedTable.removeColumn(column);
|
|
@@ -1138,12 +1204,12 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1138
1204
|
/**
|
|
1139
1205
|
* Creates a new primary key.
|
|
1140
1206
|
*/
|
|
1141
|
-
async createPrimaryKey(tableOrName, columnNames) {
|
|
1207
|
+
async createPrimaryKey(tableOrName, columnNames, constraintName) {
|
|
1142
1208
|
const table = InstanceChecker_1.InstanceChecker.isTable(tableOrName)
|
|
1143
1209
|
? tableOrName
|
|
1144
1210
|
: await this.getCachedTable(tableOrName);
|
|
1145
1211
|
const clonedTable = table.clone();
|
|
1146
|
-
const up = this.createPrimaryKeySql(table, columnNames);
|
|
1212
|
+
const up = this.createPrimaryKeySql(table, columnNames, constraintName);
|
|
1147
1213
|
// mark columns as primary, because dropPrimaryKeySql build constraint name from table primary column names.
|
|
1148
1214
|
clonedTable.columns.forEach((column) => {
|
|
1149
1215
|
if (columnNames.find((columnName) => columnName === column.name))
|
|
@@ -1167,7 +1233,9 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1167
1233
|
// if table already have primary columns, we must drop them.
|
|
1168
1234
|
const primaryColumns = clonedTable.primaryColumns;
|
|
1169
1235
|
if (primaryColumns.length > 0) {
|
|
1170
|
-
const pkName =
|
|
1236
|
+
const pkName = primaryColumns[0].primaryKeyConstraintName
|
|
1237
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
1238
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
|
|
1171
1239
|
const columnNamesString = primaryColumns
|
|
1172
1240
|
.map((column) => `"${column.name}"`)
|
|
1173
1241
|
.join(", ");
|
|
@@ -1178,7 +1246,9 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1178
1246
|
clonedTable.columns
|
|
1179
1247
|
.filter((column) => columnNames.indexOf(column.name) !== -1)
|
|
1180
1248
|
.forEach((column) => (column.isPrimary = true));
|
|
1181
|
-
const pkName =
|
|
1249
|
+
const pkName = primaryColumns[0].primaryKeyConstraintName
|
|
1250
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
1251
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, columnNames);
|
|
1182
1252
|
const columnNamesString = columnNames
|
|
1183
1253
|
.map((columnName) => `"${columnName}"`)
|
|
1184
1254
|
.join(", ");
|
|
@@ -1190,12 +1260,12 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1190
1260
|
/**
|
|
1191
1261
|
* Drops a primary key.
|
|
1192
1262
|
*/
|
|
1193
|
-
async dropPrimaryKey(tableOrName) {
|
|
1263
|
+
async dropPrimaryKey(tableOrName, constraintName) {
|
|
1194
1264
|
const table = InstanceChecker_1.InstanceChecker.isTable(tableOrName)
|
|
1195
1265
|
? tableOrName
|
|
1196
1266
|
: await this.getCachedTable(tableOrName);
|
|
1197
1267
|
const up = this.dropPrimaryKeySql(table);
|
|
1198
|
-
const down = this.createPrimaryKeySql(table, table.primaryColumns.map((column) => column.name));
|
|
1268
|
+
const down = this.createPrimaryKeySql(table, table.primaryColumns.map((column) => column.name), constraintName);
|
|
1199
1269
|
await this.executeQueries(up, down);
|
|
1200
1270
|
table.primaryColumns.forEach((column) => {
|
|
1201
1271
|
column.isPrimary = false;
|
|
@@ -1817,7 +1887,30 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1817
1887
|
}
|
|
1818
1888
|
tableColumn.isNullable =
|
|
1819
1889
|
dbColumn["is_nullable"] === "YES";
|
|
1820
|
-
|
|
1890
|
+
const primaryConstraint = columnConstraints.find((constraint) => constraint["constraint_type"] === "PRIMARY");
|
|
1891
|
+
if (primaryConstraint) {
|
|
1892
|
+
tableColumn.isPrimary = true;
|
|
1893
|
+
// find another columns involved in primary key constraint
|
|
1894
|
+
const anotherPrimaryConstraints = dbConstraints.filter((constraint) => constraint["table_name"] ===
|
|
1895
|
+
dbColumn["table_name"] &&
|
|
1896
|
+
constraint["table_schema"] ===
|
|
1897
|
+
dbColumn["table_schema"] &&
|
|
1898
|
+
constraint["column_name"] !==
|
|
1899
|
+
dbColumn["column_name"] &&
|
|
1900
|
+
constraint["constraint_type"] ===
|
|
1901
|
+
"PRIMARY");
|
|
1902
|
+
// collect all column names
|
|
1903
|
+
const columnNames = anotherPrimaryConstraints.map((constraint) => constraint["column_name"]);
|
|
1904
|
+
columnNames.push(dbColumn["column_name"]);
|
|
1905
|
+
// build default primary key constraint name
|
|
1906
|
+
const pkName = this.connection.namingStrategy.primaryKeyName(table, columnNames);
|
|
1907
|
+
// if primary key has user-defined constraint name, write it in table column
|
|
1908
|
+
if (primaryConstraint["constraint_name"] !==
|
|
1909
|
+
pkName) {
|
|
1910
|
+
tableColumn.primaryKeyConstraintName =
|
|
1911
|
+
primaryConstraint["constraint_name"];
|
|
1912
|
+
}
|
|
1913
|
+
}
|
|
1821
1914
|
const uniqueConstraints = columnConstraints.filter((constraint) => constraint["constraint_type"] === "UNIQUE");
|
|
1822
1915
|
const isConstraintComposite = uniqueConstraints.every((uniqueConstraint) => {
|
|
1823
1916
|
return dbConstraints.some((dbConstraint) => dbConstraint["constraint_type"] ===
|
|
@@ -1870,13 +1963,14 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1870
1963
|
// In postgres there is no VIRTUAL generated column type
|
|
1871
1964
|
tableColumn.generatedType = "STORED";
|
|
1872
1965
|
// We cannot relay on information_schema.columns.generation_expression, because it is formatted different.
|
|
1873
|
-
const asExpressionQuery =
|
|
1874
|
-
|
|
1875
|
-
|
|
1876
|
-
|
|
1877
|
-
|
|
1878
|
-
|
|
1879
|
-
|
|
1966
|
+
const asExpressionQuery = await this.selectTypeormMetadataSql({
|
|
1967
|
+
database: currentDatabase,
|
|
1968
|
+
schema: dbTable["table_schema"],
|
|
1969
|
+
table: dbTable["table_name"],
|
|
1970
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
1971
|
+
name: tableColumn.name,
|
|
1972
|
+
});
|
|
1973
|
+
const results = await this.query(asExpressionQuery.query, asExpressionQuery.parameters);
|
|
1880
1974
|
if (results[0] && results[0].value) {
|
|
1881
1975
|
tableColumn.asExpression = results[0].value;
|
|
1882
1976
|
}
|
|
@@ -2080,7 +2174,9 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
2080
2174
|
}
|
|
2081
2175
|
const primaryColumns = table.columns.filter((column) => column.isPrimary);
|
|
2082
2176
|
if (primaryColumns.length > 0) {
|
|
2083
|
-
const primaryKeyName =
|
|
2177
|
+
const primaryKeyName = primaryColumns[0].primaryKeyConstraintName
|
|
2178
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
2179
|
+
: this.connection.namingStrategy.primaryKeyName(table, primaryColumns.map((column) => column.name));
|
|
2084
2180
|
const columnNames = primaryColumns
|
|
2085
2181
|
.map((column) => `"${column.name}"`)
|
|
2086
2182
|
.join(", ");
|
|
@@ -2226,8 +2322,10 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
2226
2322
|
/**
|
|
2227
2323
|
* Builds create primary key sql.
|
|
2228
2324
|
*/
|
|
2229
|
-
createPrimaryKeySql(table, columnNames) {
|
|
2230
|
-
const primaryKeyName =
|
|
2325
|
+
createPrimaryKeySql(table, columnNames, constraintName) {
|
|
2326
|
+
const primaryKeyName = constraintName
|
|
2327
|
+
? constraintName
|
|
2328
|
+
: this.connection.namingStrategy.primaryKeyName(table, columnNames);
|
|
2231
2329
|
const columnNamesString = columnNames
|
|
2232
2330
|
.map((columnName) => `"${columnName}"`)
|
|
2233
2331
|
.join(", ");
|
|
@@ -2237,8 +2335,13 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
2237
2335
|
* Builds drop primary key sql.
|
|
2238
2336
|
*/
|
|
2239
2337
|
dropPrimaryKeySql(table) {
|
|
2338
|
+
if (!table.primaryColumns.length)
|
|
2339
|
+
throw new error_1.TypeORMError(`Table ${table} has no primary keys.`);
|
|
2240
2340
|
const columnNames = table.primaryColumns.map((column) => column.name);
|
|
2241
|
-
const
|
|
2341
|
+
const constraintName = table.primaryColumns[0].primaryKeyConstraintName;
|
|
2342
|
+
const primaryKeyName = constraintName
|
|
2343
|
+
? constraintName
|
|
2344
|
+
: this.connection.namingStrategy.primaryKeyName(table, columnNames);
|
|
2242
2345
|
return new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${primaryKeyName}"`);
|
|
2243
2346
|
}
|
|
2244
2347
|
/**
|
|
@@ -2449,25 +2552,22 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
2449
2552
|
else if (!column.isGenerated || column.type === "uuid") {
|
|
2450
2553
|
c += " " + this.connection.driver.createFullType(column);
|
|
2451
2554
|
}
|
|
2452
|
-
//
|
|
2453
|
-
// Also, postgres only supports the stored generated column type
|
|
2555
|
+
// Postgres only supports the stored generated column type
|
|
2454
2556
|
if (column.generatedType === "STORED" && column.asExpression) {
|
|
2455
2557
|
c += ` GENERATED ALWAYS AS (${column.asExpression}) STORED`;
|
|
2456
2558
|
}
|
|
2457
|
-
|
|
2458
|
-
|
|
2459
|
-
|
|
2460
|
-
|
|
2461
|
-
|
|
2462
|
-
|
|
2463
|
-
|
|
2464
|
-
|
|
2465
|
-
|
|
2466
|
-
|
|
2467
|
-
|
|
2468
|
-
|
|
2469
|
-
c += ` DEFAULT ${this.driver.uuidGenerator}`;
|
|
2470
|
-
}
|
|
2559
|
+
if (column.charset)
|
|
2560
|
+
c += ' CHARACTER SET "' + column.charset + '"';
|
|
2561
|
+
if (column.collation)
|
|
2562
|
+
c += ' COLLATE "' + column.collation + '"';
|
|
2563
|
+
if (column.isNullable !== true)
|
|
2564
|
+
c += " NOT NULL";
|
|
2565
|
+
if (column.default !== undefined && column.default !== null)
|
|
2566
|
+
c += " DEFAULT " + column.default;
|
|
2567
|
+
if (column.isGenerated &&
|
|
2568
|
+
column.generationStrategy === "uuid" &&
|
|
2569
|
+
!column.default)
|
|
2570
|
+
c += ` DEFAULT ${this.driver.uuidGenerator}`;
|
|
2471
2571
|
return c;
|
|
2472
2572
|
}
|
|
2473
2573
|
/**
|