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
|
@@ -349,6 +349,23 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
349
349
|
downQueries.push(this.dropIndexSql(index));
|
|
350
350
|
});
|
|
351
351
|
}
|
|
352
|
+
// if table have column with generated type, we must add the expression to the metadata table
|
|
353
|
+
const generatedColumns = table.columns.filter((column) => column.generatedType && column.asExpression);
|
|
354
|
+
for (const column of generatedColumns) {
|
|
355
|
+
const insertQuery = this.insertTypeormMetadataSql({
|
|
356
|
+
table: table.name,
|
|
357
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
358
|
+
name: column.name,
|
|
359
|
+
value: column.asExpression,
|
|
360
|
+
});
|
|
361
|
+
const deleteQuery = this.deleteTypeormMetadataSql({
|
|
362
|
+
table: table.name,
|
|
363
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
364
|
+
name: column.name,
|
|
365
|
+
});
|
|
366
|
+
upQueries.push(insertQuery);
|
|
367
|
+
downQueries.push(deleteQuery);
|
|
368
|
+
}
|
|
352
369
|
await this.executeQueries(upQueries, downQueries);
|
|
353
370
|
}
|
|
354
371
|
/**
|
|
@@ -381,6 +398,23 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
381
398
|
table.foreignKeys.forEach((foreignKey) => upQueries.push(this.dropForeignKeySql(table, foreignKey)));
|
|
382
399
|
upQueries.push(this.dropTableSql(table));
|
|
383
400
|
downQueries.push(this.createTableSql(table, createForeignKeys));
|
|
401
|
+
// if table had columns with generated type, we must remove the expression from the metadata table
|
|
402
|
+
const generatedColumns = table.columns.filter((column) => column.generatedType && column.asExpression);
|
|
403
|
+
for (const column of generatedColumns) {
|
|
404
|
+
const deleteQuery = this.deleteTypeormMetadataSql({
|
|
405
|
+
table: table.name,
|
|
406
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
407
|
+
name: column.name,
|
|
408
|
+
});
|
|
409
|
+
const insertQuery = this.insertTypeormMetadataSql({
|
|
410
|
+
table: table.name,
|
|
411
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
412
|
+
name: column.name,
|
|
413
|
+
value: column.asExpression,
|
|
414
|
+
});
|
|
415
|
+
upQueries.push(deleteQuery);
|
|
416
|
+
downQueries.push(insertQuery);
|
|
417
|
+
}
|
|
384
418
|
await this.executeQueries(upQueries, downQueries);
|
|
385
419
|
}
|
|
386
420
|
/**
|
|
@@ -425,7 +459,8 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
425
459
|
upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(oldTable)} RENAME TO "${newTableName}"`));
|
|
426
460
|
downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(newTable)} RENAME TO "${oldTableName}"`));
|
|
427
461
|
// rename primary key constraint
|
|
428
|
-
if (newTable.primaryColumns.length > 0
|
|
462
|
+
if (newTable.primaryColumns.length > 0 &&
|
|
463
|
+
!newTable.primaryColumns[0].primaryKeyConstraintName) {
|
|
429
464
|
const columnNames = newTable.primaryColumns.map((column) => column.name);
|
|
430
465
|
const oldPkName = this.connection.namingStrategy.primaryKeyName(oldTable, columnNames);
|
|
431
466
|
const newPkName = this.connection.namingStrategy.primaryKeyName(newTable, columnNames);
|
|
@@ -435,6 +470,10 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
435
470
|
}
|
|
436
471
|
// rename unique constraints
|
|
437
472
|
newTable.uniques.forEach((unique) => {
|
|
473
|
+
const oldUniqueName = this.connection.namingStrategy.uniqueConstraintName(oldTable, unique.columnNames);
|
|
474
|
+
// Skip renaming if Unique has user defined constraint name
|
|
475
|
+
if (unique.name !== oldUniqueName)
|
|
476
|
+
return;
|
|
438
477
|
// build new constraint name
|
|
439
478
|
const newUniqueName = this.connection.namingStrategy.uniqueConstraintName(newTable, unique.columnNames);
|
|
440
479
|
// build queries
|
|
@@ -445,6 +484,10 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
445
484
|
});
|
|
446
485
|
// rename index constraints
|
|
447
486
|
newTable.indices.forEach((index) => {
|
|
487
|
+
const oldIndexName = this.connection.namingStrategy.indexName(oldTable, index.columnNames, index.where);
|
|
488
|
+
// Skip renaming if Index has user defined constraint name
|
|
489
|
+
if (index.name !== oldIndexName)
|
|
490
|
+
return;
|
|
448
491
|
// build new constraint name
|
|
449
492
|
const newIndexName = this.connection.namingStrategy.indexName(newTable, index.columnNames, index.where);
|
|
450
493
|
// build queries
|
|
@@ -455,6 +498,10 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
455
498
|
});
|
|
456
499
|
// rename foreign key constraints
|
|
457
500
|
newTable.foreignKeys.forEach((foreignKey) => {
|
|
501
|
+
const oldForeignKeyName = this.connection.namingStrategy.foreignKeyName(oldTable, foreignKey.columnNames, this.getTablePath(foreignKey), foreignKey.referencedColumnNames);
|
|
502
|
+
// Skip renaming if foreign key has user defined constraint name
|
|
503
|
+
if (foreignKey.name !== oldForeignKeyName)
|
|
504
|
+
return;
|
|
458
505
|
// build new constraint name
|
|
459
506
|
const newForeignKeyName = this.connection.namingStrategy.foreignKeyName(newTable, foreignKey.columnNames, this.getTablePath(foreignKey), foreignKey.referencedColumnNames);
|
|
460
507
|
// build queries
|
|
@@ -485,7 +532,9 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
485
532
|
const primaryColumns = clonedTable.primaryColumns;
|
|
486
533
|
// if table already have primary key, me must drop it and recreate again
|
|
487
534
|
if (primaryColumns.length > 0) {
|
|
488
|
-
const pkName =
|
|
535
|
+
const pkName = primaryColumns[0].primaryKeyConstraintName
|
|
536
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
537
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
|
|
489
538
|
const columnNames = primaryColumns
|
|
490
539
|
.map((column) => `"${column.name}"`)
|
|
491
540
|
.join(", ");
|
|
@@ -493,7 +542,9 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
493
542
|
downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNames})`));
|
|
494
543
|
}
|
|
495
544
|
primaryColumns.push(column);
|
|
496
|
-
const pkName =
|
|
545
|
+
const pkName = primaryColumns[0].primaryKeyConstraintName
|
|
546
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
547
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
|
|
497
548
|
const columnNames = primaryColumns
|
|
498
549
|
.map((column) => `"${column.name}"`)
|
|
499
550
|
.join(", ");
|
|
@@ -518,6 +569,21 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
518
569
|
upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${uniqueConstraint.name}" UNIQUE ("${column.name}")`));
|
|
519
570
|
downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${uniqueConstraint.name}"`));
|
|
520
571
|
}
|
|
572
|
+
if (column.generatedType && column.asExpression) {
|
|
573
|
+
const insertQuery = this.insertTypeormMetadataSql({
|
|
574
|
+
table: table.name,
|
|
575
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
576
|
+
name: column.name,
|
|
577
|
+
value: column.asExpression,
|
|
578
|
+
});
|
|
579
|
+
const deleteQuery = this.deleteTypeormMetadataSql({
|
|
580
|
+
table: table.name,
|
|
581
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
582
|
+
name: column.name,
|
|
583
|
+
});
|
|
584
|
+
upQueries.push(insertQuery);
|
|
585
|
+
downQueries.push(deleteQuery);
|
|
586
|
+
}
|
|
521
587
|
await this.executeQueries(upQueries, downQueries);
|
|
522
588
|
clonedTable.addColumn(column);
|
|
523
589
|
this.replaceCachedTable(table, clonedTable);
|
|
@@ -570,7 +636,9 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
570
636
|
if ((newColumn.isGenerated !== oldColumn.isGenerated &&
|
|
571
637
|
newColumn.generationStrategy !== "uuid") ||
|
|
572
638
|
oldColumn.type !== newColumn.type ||
|
|
573
|
-
oldColumn.length !== newColumn.length
|
|
639
|
+
oldColumn.length !== newColumn.length ||
|
|
640
|
+
oldColumn.generatedType !== newColumn.generatedType ||
|
|
641
|
+
oldColumn.asExpression !== newColumn.asExpression) {
|
|
574
642
|
// Oracle does not support changing of IDENTITY column, so we must drop column and recreate it again.
|
|
575
643
|
// Also, we recreate column if column type changed
|
|
576
644
|
await this.dropColumn(table, oldColumn);
|
|
@@ -584,7 +652,8 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
584
652
|
upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} RENAME COLUMN "${oldColumn.name}" TO "${newColumn.name}"`));
|
|
585
653
|
downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} RENAME COLUMN "${newColumn.name}" TO "${oldColumn.name}"`));
|
|
586
654
|
// rename column primary key constraint
|
|
587
|
-
if (oldColumn.isPrimary === true
|
|
655
|
+
if (oldColumn.isPrimary === true &&
|
|
656
|
+
!oldColumn.primaryKeyConstraintName) {
|
|
588
657
|
const primaryColumns = clonedTable.primaryColumns;
|
|
589
658
|
// build old primary constraint name
|
|
590
659
|
const columnNames = primaryColumns.map((column) => column.name);
|
|
@@ -599,6 +668,10 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
599
668
|
}
|
|
600
669
|
// rename unique constraints
|
|
601
670
|
clonedTable.findColumnUniques(oldColumn).forEach((unique) => {
|
|
671
|
+
const oldUniqueName = this.connection.namingStrategy.uniqueConstraintName(clonedTable, unique.columnNames);
|
|
672
|
+
// Skip renaming if Unique has user defined constraint name
|
|
673
|
+
if (unique.name !== oldUniqueName)
|
|
674
|
+
return;
|
|
602
675
|
// build new constraint name
|
|
603
676
|
unique.columnNames.splice(unique.columnNames.indexOf(oldColumn.name), 1);
|
|
604
677
|
unique.columnNames.push(newColumn.name);
|
|
@@ -611,6 +684,10 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
611
684
|
});
|
|
612
685
|
// rename index constraints
|
|
613
686
|
clonedTable.findColumnIndices(oldColumn).forEach((index) => {
|
|
687
|
+
const oldIndexName = this.connection.namingStrategy.indexName(clonedTable, index.columnNames, index.where);
|
|
688
|
+
// Skip renaming if Index has user defined constraint name
|
|
689
|
+
if (index.name !== oldIndexName)
|
|
690
|
+
return;
|
|
614
691
|
// build new constraint name
|
|
615
692
|
index.columnNames.splice(index.columnNames.indexOf(oldColumn.name), 1);
|
|
616
693
|
index.columnNames.push(newColumn.name);
|
|
@@ -625,6 +702,10 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
625
702
|
clonedTable
|
|
626
703
|
.findColumnForeignKeys(oldColumn)
|
|
627
704
|
.forEach((foreignKey) => {
|
|
705
|
+
const foreignKeyName = this.connection.namingStrategy.foreignKeyName(clonedTable, foreignKey.columnNames, this.getTablePath(foreignKey), foreignKey.referencedColumnNames);
|
|
706
|
+
// Skip renaming if foreign key has user defined constraint name
|
|
707
|
+
if (foreignKey.name !== foreignKeyName)
|
|
708
|
+
return;
|
|
628
709
|
// build new constraint name
|
|
629
710
|
foreignKey.columnNames.splice(foreignKey.columnNames.indexOf(oldColumn.name), 1);
|
|
630
711
|
foreignKey.columnNames.push(newColumn.name);
|
|
@@ -680,7 +761,9 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
680
761
|
const primaryColumns = clonedTable.primaryColumns;
|
|
681
762
|
// if primary column state changed, we must always drop existed constraint.
|
|
682
763
|
if (primaryColumns.length > 0) {
|
|
683
|
-
const pkName =
|
|
764
|
+
const pkName = primaryColumns[0].primaryKeyConstraintName
|
|
765
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
766
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
|
|
684
767
|
const columnNames = primaryColumns
|
|
685
768
|
.map((column) => `"${column.name}"`)
|
|
686
769
|
.join(", ");
|
|
@@ -692,7 +775,9 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
692
775
|
// update column in table
|
|
693
776
|
const column = clonedTable.columns.find((column) => column.name === newColumn.name);
|
|
694
777
|
column.isPrimary = true;
|
|
695
|
-
const pkName =
|
|
778
|
+
const pkName = primaryColumns[0].primaryKeyConstraintName
|
|
779
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
780
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
|
|
696
781
|
const columnNames = primaryColumns
|
|
697
782
|
.map((column) => `"${column.name}"`)
|
|
698
783
|
.join(", ");
|
|
@@ -707,7 +792,10 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
707
792
|
column.isPrimary = false;
|
|
708
793
|
// if we have another primary keys, we must recreate constraint.
|
|
709
794
|
if (primaryColumns.length > 0) {
|
|
710
|
-
const pkName =
|
|
795
|
+
const pkName = primaryColumns[0]
|
|
796
|
+
.primaryKeyConstraintName
|
|
797
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
798
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
|
|
711
799
|
const columnNames = primaryColumns
|
|
712
800
|
.map((column) => `"${column.name}"`)
|
|
713
801
|
.join(", ");
|
|
@@ -765,7 +853,9 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
765
853
|
const downQueries = [];
|
|
766
854
|
// drop primary key constraint
|
|
767
855
|
if (column.isPrimary) {
|
|
768
|
-
const pkName =
|
|
856
|
+
const pkName = column.primaryKeyConstraintName
|
|
857
|
+
? column.primaryKeyConstraintName
|
|
858
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, clonedTable.primaryColumns.map((column) => column.name));
|
|
769
859
|
const columnNames = clonedTable.primaryColumns
|
|
770
860
|
.map((primaryColumn) => `"${primaryColumn.name}"`)
|
|
771
861
|
.join(", ");
|
|
@@ -776,7 +866,10 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
776
866
|
tableColumn.isPrimary = false;
|
|
777
867
|
// if primary key have multiple columns, we must recreate it without dropped column
|
|
778
868
|
if (clonedTable.primaryColumns.length > 0) {
|
|
779
|
-
const pkName =
|
|
869
|
+
const pkName = clonedTable.primaryColumns[0]
|
|
870
|
+
.primaryKeyConstraintName
|
|
871
|
+
? clonedTable.primaryColumns[0].primaryKeyConstraintName
|
|
872
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, clonedTable.primaryColumns.map((column) => column.name));
|
|
780
873
|
const columnNames = clonedTable.primaryColumns
|
|
781
874
|
.map((primaryColumn) => `"${primaryColumn.name}"`)
|
|
782
875
|
.join(", ");
|
|
@@ -810,6 +903,21 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
810
903
|
}
|
|
811
904
|
upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP COLUMN "${column.name}"`));
|
|
812
905
|
downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD ${this.buildCreateColumnSql(column)}`));
|
|
906
|
+
if (column.generatedType && column.asExpression) {
|
|
907
|
+
const deleteQuery = this.deleteTypeormMetadataSql({
|
|
908
|
+
table: table.name,
|
|
909
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
910
|
+
name: column.name,
|
|
911
|
+
});
|
|
912
|
+
const insertQuery = this.insertTypeormMetadataSql({
|
|
913
|
+
table: table.name,
|
|
914
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
915
|
+
name: column.name,
|
|
916
|
+
value: column.asExpression,
|
|
917
|
+
});
|
|
918
|
+
upQueries.push(deleteQuery);
|
|
919
|
+
downQueries.push(insertQuery);
|
|
920
|
+
}
|
|
813
921
|
await this.executeQueries(upQueries, downQueries);
|
|
814
922
|
clonedTable.removeColumn(column);
|
|
815
923
|
this.replaceCachedTable(table, clonedTable);
|
|
@@ -825,12 +933,12 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
825
933
|
/**
|
|
826
934
|
* Creates a new primary key.
|
|
827
935
|
*/
|
|
828
|
-
async createPrimaryKey(tableOrName, columnNames) {
|
|
936
|
+
async createPrimaryKey(tableOrName, columnNames, constraintName) {
|
|
829
937
|
const table = InstanceChecker_1.InstanceChecker.isTable(tableOrName)
|
|
830
938
|
? tableOrName
|
|
831
939
|
: await this.getCachedTable(tableOrName);
|
|
832
940
|
const clonedTable = table.clone();
|
|
833
|
-
const up = this.createPrimaryKeySql(table, columnNames);
|
|
941
|
+
const up = this.createPrimaryKeySql(table, columnNames, constraintName);
|
|
834
942
|
// mark columns as primary, because dropPrimaryKeySql build constraint name from table primary column names.
|
|
835
943
|
clonedTable.columns.forEach((column) => {
|
|
836
944
|
if (columnNames.find((columnName) => columnName === column.name))
|
|
@@ -854,7 +962,9 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
854
962
|
// if table already have primary columns, we must drop them.
|
|
855
963
|
const primaryColumns = clonedTable.primaryColumns;
|
|
856
964
|
if (primaryColumns.length > 0) {
|
|
857
|
-
const pkName =
|
|
965
|
+
const pkName = primaryColumns[0].primaryKeyConstraintName
|
|
966
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
967
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
|
|
858
968
|
const columnNamesString = primaryColumns
|
|
859
969
|
.map((column) => `"${column.name}"`)
|
|
860
970
|
.join(", ");
|
|
@@ -865,7 +975,9 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
865
975
|
clonedTable.columns
|
|
866
976
|
.filter((column) => columnNames.indexOf(column.name) !== -1)
|
|
867
977
|
.forEach((column) => (column.isPrimary = true));
|
|
868
|
-
const pkName =
|
|
978
|
+
const pkName = primaryColumns[0].primaryKeyConstraintName
|
|
979
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
980
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, columnNames);
|
|
869
981
|
const columnNamesString = columnNames
|
|
870
982
|
.map((columnName) => `"${columnName}"`)
|
|
871
983
|
.join(", ");
|
|
@@ -877,12 +989,12 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
877
989
|
/**
|
|
878
990
|
* Drops a primary key.
|
|
879
991
|
*/
|
|
880
|
-
async dropPrimaryKey(tableOrName) {
|
|
992
|
+
async dropPrimaryKey(tableOrName, constraintName) {
|
|
881
993
|
const table = InstanceChecker_1.InstanceChecker.isTable(tableOrName)
|
|
882
994
|
? tableOrName
|
|
883
995
|
: await this.getCachedTable(tableOrName);
|
|
884
996
|
const up = this.dropPrimaryKeySql(table);
|
|
885
|
-
const down = this.createPrimaryKeySql(table, table.primaryColumns.map((column) => column.name));
|
|
997
|
+
const down = this.createPrimaryKeySql(table, table.primaryColumns.map((column) => column.name), constraintName);
|
|
886
998
|
await this.executeQueries(up, down);
|
|
887
999
|
table.primaryColumns.forEach((column) => {
|
|
888
1000
|
column.isPrimary = false;
|
|
@@ -1246,7 +1358,7 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1246
1358
|
this.query(constraintsSql),
|
|
1247
1359
|
]);
|
|
1248
1360
|
// create tables for loaded tables
|
|
1249
|
-
return dbTables.map((dbTable) => {
|
|
1361
|
+
return await Promise.all(dbTables.map(async (dbTable) => {
|
|
1250
1362
|
const table = new Table_1.Table();
|
|
1251
1363
|
const owner = dbTable["OWNER"] === currentSchema &&
|
|
1252
1364
|
(!this.driver.options.schema ||
|
|
@@ -1257,11 +1369,13 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1257
1369
|
table.schema = dbTable["OWNER"];
|
|
1258
1370
|
table.name = this.driver.buildTableName(dbTable["TABLE_NAME"], owner);
|
|
1259
1371
|
// create columns from the loaded columns
|
|
1260
|
-
table.columns = dbColumns
|
|
1372
|
+
table.columns = await Promise.all(dbColumns
|
|
1261
1373
|
.filter((dbColumn) => dbColumn["OWNER"] === dbTable["OWNER"] &&
|
|
1262
|
-
dbColumn["TABLE_NAME"] ===
|
|
1263
|
-
|
|
1264
|
-
|
|
1374
|
+
dbColumn["TABLE_NAME"] ===
|
|
1375
|
+
dbTable["TABLE_NAME"])
|
|
1376
|
+
.map(async (dbColumn) => {
|
|
1377
|
+
const columnConstraints = dbConstraints.filter((dbConstraint) => dbConstraint["OWNER"] ===
|
|
1378
|
+
dbColumn["OWNER"] &&
|
|
1265
1379
|
dbConstraint["TABLE_NAME"] ===
|
|
1266
1380
|
dbColumn["TABLE_NAME"] &&
|
|
1267
1381
|
dbConstraint["COLUMN_NAME"] ===
|
|
@@ -1276,12 +1390,13 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1276
1390
|
dbColumn["COLUMN_NAME"] &&
|
|
1277
1391
|
dbConstraint["CONSTRAINT_NAME"] ===
|
|
1278
1392
|
uniqueConstraint["CONSTRAINT_NAME"] &&
|
|
1279
|
-
dbConstraint["CONSTRAINT_TYPE"] ===
|
|
1393
|
+
dbConstraint["CONSTRAINT_TYPE"] ===
|
|
1394
|
+
"U");
|
|
1280
1395
|
});
|
|
1281
|
-
const isPrimary = !!columnConstraints.find((constraint) => constraint["CONSTRAINT_TYPE"] === "P");
|
|
1282
1396
|
const tableColumn = new TableColumn_1.TableColumn();
|
|
1283
1397
|
tableColumn.name = dbColumn["COLUMN_NAME"];
|
|
1284
|
-
tableColumn.type =
|
|
1398
|
+
tableColumn.type =
|
|
1399
|
+
dbColumn["DATA_TYPE"].toLowerCase();
|
|
1285
1400
|
if (tableColumn.type.indexOf("(") !== -1)
|
|
1286
1401
|
tableColumn.type = tableColumn.type.replace(/\([0-9]*\)/, "");
|
|
1287
1402
|
// check only columns that have length property
|
|
@@ -1299,31 +1414,60 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1299
1414
|
tableColumn.type === "float") {
|
|
1300
1415
|
if (dbColumn["DATA_PRECISION"] !== null &&
|
|
1301
1416
|
!this.isDefaultColumnPrecision(table, tableColumn, dbColumn["DATA_PRECISION"]))
|
|
1302
|
-
tableColumn.precision =
|
|
1417
|
+
tableColumn.precision =
|
|
1418
|
+
dbColumn["DATA_PRECISION"];
|
|
1303
1419
|
if (dbColumn["DATA_SCALE"] !== null &&
|
|
1304
1420
|
!this.isDefaultColumnScale(table, tableColumn, dbColumn["DATA_SCALE"]))
|
|
1305
1421
|
tableColumn.scale = dbColumn["DATA_SCALE"];
|
|
1306
1422
|
}
|
|
1307
1423
|
else if ((tableColumn.type === "timestamp" ||
|
|
1308
|
-
tableColumn.type ===
|
|
1424
|
+
tableColumn.type ===
|
|
1425
|
+
"timestamp with time zone" ||
|
|
1309
1426
|
tableColumn.type ===
|
|
1310
1427
|
"timestamp with local time zone") &&
|
|
1311
1428
|
dbColumn["DATA_SCALE"] !== null) {
|
|
1312
|
-
tableColumn.precision =
|
|
1313
|
-
|
|
1314
|
-
|
|
1429
|
+
tableColumn.precision =
|
|
1430
|
+
!this.isDefaultColumnPrecision(table, tableColumn, dbColumn["DATA_SCALE"])
|
|
1431
|
+
? dbColumn["DATA_SCALE"]
|
|
1432
|
+
: undefined;
|
|
1315
1433
|
}
|
|
1316
1434
|
tableColumn.default =
|
|
1317
1435
|
dbColumn["DATA_DEFAULT"] !== null &&
|
|
1318
1436
|
dbColumn["DATA_DEFAULT"] !== undefined &&
|
|
1437
|
+
dbColumn["VIRTUAL_COLUMN"] === "NO" &&
|
|
1319
1438
|
dbColumn["DATA_DEFAULT"].trim() !== "NULL"
|
|
1320
1439
|
? (tableColumn.default =
|
|
1321
1440
|
dbColumn["DATA_DEFAULT"].trim())
|
|
1322
1441
|
: undefined;
|
|
1323
|
-
|
|
1442
|
+
const primaryConstraint = columnConstraints.find((constraint) => constraint["CONSTRAINT_TYPE"] === "P");
|
|
1443
|
+
if (primaryConstraint) {
|
|
1444
|
+
tableColumn.isPrimary = true;
|
|
1445
|
+
// find another columns involved in primary key constraint
|
|
1446
|
+
const anotherPrimaryConstraints = dbConstraints.filter((constraint) => constraint["OWNER"] ===
|
|
1447
|
+
dbColumn["OWNER"] &&
|
|
1448
|
+
constraint["TABLE_NAME"] ===
|
|
1449
|
+
dbColumn["TABLE_NAME"] &&
|
|
1450
|
+
constraint["COLUMN_NAME"] !==
|
|
1451
|
+
dbColumn["COLUMN_NAME"] &&
|
|
1452
|
+
constraint["CONSTRAINT_TYPE"] ===
|
|
1453
|
+
"P");
|
|
1454
|
+
// collect all column names
|
|
1455
|
+
const columnNames = anotherPrimaryConstraints.map((constraint) => constraint["COLUMN_NAME"]);
|
|
1456
|
+
columnNames.push(dbColumn["COLUMN_NAME"]);
|
|
1457
|
+
// build default primary key constraint name
|
|
1458
|
+
const pkName = this.connection.namingStrategy.primaryKeyName(table, columnNames);
|
|
1459
|
+
// if primary key has user-defined constraint name, write it in table column
|
|
1460
|
+
if (primaryConstraint["CONSTRAINT_NAME"] !==
|
|
1461
|
+
pkName) {
|
|
1462
|
+
tableColumn.primaryKeyConstraintName =
|
|
1463
|
+
primaryConstraint["CONSTRAINT_NAME"];
|
|
1464
|
+
}
|
|
1465
|
+
}
|
|
1466
|
+
tableColumn.isNullable =
|
|
1467
|
+
dbColumn["NULLABLE"] === "Y";
|
|
1324
1468
|
tableColumn.isUnique =
|
|
1325
|
-
uniqueConstraints.length > 0 &&
|
|
1326
|
-
|
|
1469
|
+
uniqueConstraints.length > 0 &&
|
|
1470
|
+
!isConstraintComposite;
|
|
1327
1471
|
tableColumn.isGenerated =
|
|
1328
1472
|
dbColumn["IDENTITY_COLUMN"] === "YES";
|
|
1329
1473
|
if (tableColumn.isGenerated) {
|
|
@@ -1331,11 +1475,27 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1331
1475
|
tableColumn.default = undefined;
|
|
1332
1476
|
}
|
|
1333
1477
|
tableColumn.comment = ""; // todo
|
|
1478
|
+
if (dbColumn["VIRTUAL_COLUMN"] === "YES") {
|
|
1479
|
+
tableColumn.generatedType = "VIRTUAL";
|
|
1480
|
+
const asExpressionQuery = await this.selectTypeormMetadataSql({
|
|
1481
|
+
table: dbTable["TABLE_NAME"],
|
|
1482
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
1483
|
+
name: tableColumn.name,
|
|
1484
|
+
});
|
|
1485
|
+
const results = await this.query(asExpressionQuery.query, asExpressionQuery.parameters);
|
|
1486
|
+
if (results[0] && results[0].value) {
|
|
1487
|
+
tableColumn.asExpression = results[0].value;
|
|
1488
|
+
}
|
|
1489
|
+
else {
|
|
1490
|
+
tableColumn.asExpression = "";
|
|
1491
|
+
}
|
|
1492
|
+
}
|
|
1334
1493
|
return tableColumn;
|
|
1335
|
-
});
|
|
1494
|
+
}));
|
|
1336
1495
|
// find unique constraints of table, group them by constraint name and build TableUnique.
|
|
1337
1496
|
const tableUniqueConstraints = OrmUtils_1.OrmUtils.uniq(dbConstraints.filter((dbConstraint) => {
|
|
1338
|
-
return (dbConstraint["TABLE_NAME"] ===
|
|
1497
|
+
return (dbConstraint["TABLE_NAME"] ===
|
|
1498
|
+
dbTable["TABLE_NAME"] &&
|
|
1339
1499
|
dbConstraint["OWNER"] === dbTable["OWNER"] &&
|
|
1340
1500
|
dbConstraint["CONSTRAINT_TYPE"] === "U");
|
|
1341
1501
|
}), (dbConstraint) => dbConstraint["CONSTRAINT_NAME"]);
|
|
@@ -1349,7 +1509,8 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1349
1509
|
});
|
|
1350
1510
|
// find check constraints of table, group them by constraint name and build TableCheck.
|
|
1351
1511
|
const tableCheckConstraints = OrmUtils_1.OrmUtils.uniq(dbConstraints.filter((dbConstraint) => {
|
|
1352
|
-
return (dbConstraint["TABLE_NAME"] ===
|
|
1512
|
+
return (dbConstraint["TABLE_NAME"] ===
|
|
1513
|
+
dbTable["TABLE_NAME"] &&
|
|
1353
1514
|
dbConstraint["OWNER"] === dbTable["OWNER"] &&
|
|
1354
1515
|
dbConstraint["CONSTRAINT_TYPE"] === "C");
|
|
1355
1516
|
}), (dbConstraint) => dbConstraint["CONSTRAINT_NAME"]);
|
|
@@ -1366,9 +1527,11 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1366
1527
|
});
|
|
1367
1528
|
// find foreign key constraints of table, group them by constraint name and build TableForeignKey.
|
|
1368
1529
|
const tableForeignKeyConstraints = OrmUtils_1.OrmUtils.uniq(dbForeignKeys.filter((dbForeignKey) => dbForeignKey["OWNER"] === dbTable["OWNER"] &&
|
|
1369
|
-
dbForeignKey["TABLE_NAME"] ===
|
|
1530
|
+
dbForeignKey["TABLE_NAME"] ===
|
|
1531
|
+
dbTable["TABLE_NAME"]), (dbForeignKey) => dbForeignKey["CONSTRAINT_NAME"]);
|
|
1370
1532
|
table.foreignKeys = tableForeignKeyConstraints.map((dbForeignKey) => {
|
|
1371
|
-
const foreignKeys = dbForeignKeys.filter((dbFk) => dbFk["TABLE_NAME"] ===
|
|
1533
|
+
const foreignKeys = dbForeignKeys.filter((dbFk) => dbFk["TABLE_NAME"] ===
|
|
1534
|
+
dbForeignKey["TABLE_NAME"] &&
|
|
1372
1535
|
dbFk["OWNER"] === dbForeignKey["OWNER"] &&
|
|
1373
1536
|
dbFk["CONSTRAINT_NAME"] ===
|
|
1374
1537
|
dbForeignKey["CONSTRAINT_NAME"]);
|
|
@@ -1395,7 +1558,7 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1395
1558
|
});
|
|
1396
1559
|
});
|
|
1397
1560
|
return table;
|
|
1398
|
-
});
|
|
1561
|
+
}));
|
|
1399
1562
|
}
|
|
1400
1563
|
/**
|
|
1401
1564
|
* Builds and returns SQL for create table.
|
|
@@ -1463,7 +1626,9 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1463
1626
|
}
|
|
1464
1627
|
const primaryColumns = table.columns.filter((column) => column.isPrimary);
|
|
1465
1628
|
if (primaryColumns.length > 0) {
|
|
1466
|
-
const primaryKeyName =
|
|
1629
|
+
const primaryKeyName = primaryColumns[0].primaryKeyConstraintName
|
|
1630
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
1631
|
+
: this.connection.namingStrategy.primaryKeyName(table, primaryColumns.map((column) => column.name));
|
|
1467
1632
|
const columnNames = primaryColumns
|
|
1468
1633
|
.map((column) => `"${column.name}"`)
|
|
1469
1634
|
.join(", ");
|
|
@@ -1540,8 +1705,10 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1540
1705
|
/**
|
|
1541
1706
|
* Builds create primary key sql.
|
|
1542
1707
|
*/
|
|
1543
|
-
createPrimaryKeySql(table, columnNames) {
|
|
1544
|
-
const primaryKeyName =
|
|
1708
|
+
createPrimaryKeySql(table, columnNames, constraintName) {
|
|
1709
|
+
const primaryKeyName = constraintName
|
|
1710
|
+
? constraintName
|
|
1711
|
+
: this.connection.namingStrategy.primaryKeyName(table, columnNames);
|
|
1545
1712
|
const columnNamesString = columnNames
|
|
1546
1713
|
.map((columnName) => `"${columnName}"`)
|
|
1547
1714
|
.join(", ");
|
|
@@ -1551,8 +1718,13 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1551
1718
|
* Builds drop primary key sql.
|
|
1552
1719
|
*/
|
|
1553
1720
|
dropPrimaryKeySql(table) {
|
|
1721
|
+
if (!table.primaryColumns.length)
|
|
1722
|
+
throw new error_1.TypeORMError(`Table ${table} has no primary keys.`);
|
|
1554
1723
|
const columnNames = table.primaryColumns.map((column) => column.name);
|
|
1555
|
-
const
|
|
1724
|
+
const constraintName = table.primaryColumns[0].primaryKeyConstraintName;
|
|
1725
|
+
const primaryKeyName = constraintName
|
|
1726
|
+
? constraintName
|
|
1727
|
+
: this.connection.namingStrategy.primaryKeyName(table, columnNames);
|
|
1556
1728
|
return new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${primaryKeyName}"`);
|
|
1557
1729
|
}
|
|
1558
1730
|
/**
|
|
@@ -1623,6 +1795,8 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1623
1795
|
c += " CHARACTER SET " + column.charset;
|
|
1624
1796
|
if (column.collation)
|
|
1625
1797
|
c += " COLLATE " + column.collation;
|
|
1798
|
+
if (column.asExpression)
|
|
1799
|
+
c += ` AS (${column.asExpression}) VIRTUAL`;
|
|
1626
1800
|
if (column.default !== undefined && column.default !== null)
|
|
1627
1801
|
// DEFAULT must be placed before NOT NULL
|
|
1628
1802
|
c += " DEFAULT " + column.default;
|