typeorm 0.3.6-dev.7dfb69f → 0.3.6-dev.862a402
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 +1 -1
- package/browser/decorator/options/ColumnOptions.d.ts +8 -0
- package/browser/decorator/options/ColumnOptions.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/aurora-mysql/AuroraMysqlDriver.d.ts +1 -1
- package/browser/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +3 -3
- package/browser/driver/cockroachdb/CockroachQueryRunner.js +100 -22
- 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/MysqlQueryRunner.js +16 -0
- package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/browser/driver/oracle/OracleQueryRunner.d.ts +3 -3
- package/browser/driver/oracle/OracleQueryRunner.js +98 -21
- package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/browser/driver/postgres/PostgresQueryRunner.d.ts +3 -3
- package/browser/driver/postgres/PostgresQueryRunner.js +99 -21
- package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +59 -15
- package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +53 -12
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerQueryRunner.d.ts +3 -3
- package/browser/driver/sqlserver/SqlServerQueryRunner.js +100 -22
- 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/entity-manager/EntityManager.js +1 -1
- package/browser/entity-manager/EntityManager.js.map +1 -1
- package/browser/entity-schema/EntitySchemaColumnOptions.d.ts +4 -0
- package/browser/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaTransformer.js +2 -0
- package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
- package/browser/metadata/ColumnMetadata.d.ts +8 -0
- 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-args/JoinColumnMetadataArgs.d.ts +4 -0
- package/browser/metadata-args/JoinColumnMetadataArgs.js.map +1 -1
- package/browser/metadata-builder/EntityMetadataValidator.js +9 -0
- package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
- package/browser/metadata-builder/JunctionEntityMetadataBuilder.js +5 -0
- 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/query-builder/QueryBuilder.d.ts +1 -1
- package/browser/query-builder/QueryBuilder.js +3 -5
- package/browser/query-builder/QueryBuilder.js.map +1 -1
- package/browser/query-builder/QueryExpressionMap.d.ts +1 -1
- 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-runner/QueryRunner.d.ts +2 -2
- package/browser/query-runner/QueryRunner.js.map +1 -1
- package/browser/schema-builder/options/TableColumnOptions.d.ts +8 -0
- 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/table/TableColumn.d.ts +4 -0
- package/browser/schema-builder/table/TableColumn.js +2 -0
- package/browser/schema-builder/table/TableColumn.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/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/decorator/options/ColumnOptions.d.ts +8 -0
- package/decorator/options/ColumnOptions.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/aurora-mysql/AuroraMysqlDriver.d.ts +1 -1
- package/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
- package/driver/cockroachdb/CockroachQueryRunner.d.ts +3 -3
- package/driver/cockroachdb/CockroachQueryRunner.js +100 -22
- 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/MysqlQueryRunner.js +16 -0
- package/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/driver/oracle/OracleQueryRunner.d.ts +3 -3
- package/driver/oracle/OracleQueryRunner.js +98 -21
- package/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/driver/postgres/PostgresQueryRunner.d.ts +3 -3
- package/driver/postgres/PostgresQueryRunner.js +99 -21
- package/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/driver/sqlite-abstract/AbstractSqliteDriver.js +59 -15
- package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +53 -12
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/driver/sqlserver/SqlServerQueryRunner.d.ts +3 -3
- package/driver/sqlserver/SqlServerQueryRunner.js +100 -22
- 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/entity-manager/EntityManager.js +1 -1
- package/entity-manager/EntityManager.js.map +1 -1
- package/entity-schema/EntitySchemaColumnOptions.d.ts +4 -0
- package/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
- package/entity-schema/EntitySchemaTransformer.js +2 -0
- package/entity-schema/EntitySchemaTransformer.js.map +1 -1
- package/metadata/ColumnMetadata.d.ts +8 -0
- 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-args/JoinColumnMetadataArgs.d.ts +4 -0
- package/metadata-args/JoinColumnMetadataArgs.js.map +1 -1
- package/metadata-builder/EntityMetadataValidator.js +9 -0
- package/metadata-builder/EntityMetadataValidator.js.map +1 -1
- package/metadata-builder/JunctionEntityMetadataBuilder.js +5 -0
- 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/query-builder/QueryBuilder.d.ts +1 -1
- package/query-builder/QueryBuilder.js +5 -7
- package/query-builder/QueryBuilder.js.map +1 -1
- package/query-builder/QueryExpressionMap.d.ts +1 -1
- 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-runner/QueryRunner.d.ts +2 -2
- package/query-runner/QueryRunner.js.map +1 -1
- package/schema-builder/options/TableColumnOptions.d.ts +8 -0
- 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/table/TableColumn.d.ts +4 -0
- package/schema-builder/table/TableColumn.js +2 -0
- package/schema-builder/table/TableColumn.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
|
@@ -162,7 +162,7 @@ export declare class OracleQueryRunner extends BaseQueryRunner implements QueryR
|
|
|
162
162
|
/**
|
|
163
163
|
* Creates a new primary key.
|
|
164
164
|
*/
|
|
165
|
-
createPrimaryKey(tableOrName: Table | string, columnNames: string[]): Promise<void>;
|
|
165
|
+
createPrimaryKey(tableOrName: Table | string, columnNames: string[], constraintName?: string): Promise<void>;
|
|
166
166
|
/**
|
|
167
167
|
* Updates composite primary keys.
|
|
168
168
|
*/
|
|
@@ -170,7 +170,7 @@ export declare class OracleQueryRunner extends BaseQueryRunner implements QueryR
|
|
|
170
170
|
/**
|
|
171
171
|
* Drops a primary key.
|
|
172
172
|
*/
|
|
173
|
-
dropPrimaryKey(tableOrName: Table | string): Promise<void>;
|
|
173
|
+
dropPrimaryKey(tableOrName: Table | string, constraintName?: string): Promise<void>;
|
|
174
174
|
/**
|
|
175
175
|
* Creates a new unique constraint.
|
|
176
176
|
*/
|
|
@@ -294,7 +294,7 @@ export declare class OracleQueryRunner extends BaseQueryRunner implements QueryR
|
|
|
294
294
|
/**
|
|
295
295
|
* Builds create primary key sql.
|
|
296
296
|
*/
|
|
297
|
-
protected createPrimaryKeySql(table: Table, columnNames: string[]): Query;
|
|
297
|
+
protected createPrimaryKeySql(table: Table, columnNames: string[], constraintName?: string): Query;
|
|
298
298
|
/**
|
|
299
299
|
* Builds drop primary key sql.
|
|
300
300
|
*/
|
|
@@ -459,7 +459,8 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
459
459
|
upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(oldTable)} RENAME TO "${newTableName}"`));
|
|
460
460
|
downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(newTable)} RENAME TO "${oldTableName}"`));
|
|
461
461
|
// rename primary key constraint
|
|
462
|
-
if (newTable.primaryColumns.length > 0
|
|
462
|
+
if (newTable.primaryColumns.length > 0 &&
|
|
463
|
+
!newTable.primaryColumns[0].primaryKeyConstraintName) {
|
|
463
464
|
const columnNames = newTable.primaryColumns.map((column) => column.name);
|
|
464
465
|
const oldPkName = this.connection.namingStrategy.primaryKeyName(oldTable, columnNames);
|
|
465
466
|
const newPkName = this.connection.namingStrategy.primaryKeyName(newTable, columnNames);
|
|
@@ -469,6 +470,10 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
469
470
|
}
|
|
470
471
|
// rename unique constraints
|
|
471
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;
|
|
472
477
|
// build new constraint name
|
|
473
478
|
const newUniqueName = this.connection.namingStrategy.uniqueConstraintName(newTable, unique.columnNames);
|
|
474
479
|
// build queries
|
|
@@ -479,6 +484,10 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
479
484
|
});
|
|
480
485
|
// rename index constraints
|
|
481
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;
|
|
482
491
|
// build new constraint name
|
|
483
492
|
const newIndexName = this.connection.namingStrategy.indexName(newTable, index.columnNames, index.where);
|
|
484
493
|
// build queries
|
|
@@ -489,6 +498,10 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
489
498
|
});
|
|
490
499
|
// rename foreign key constraints
|
|
491
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;
|
|
492
505
|
// build new constraint name
|
|
493
506
|
const newForeignKeyName = this.connection.namingStrategy.foreignKeyName(newTable, foreignKey.columnNames, this.getTablePath(foreignKey), foreignKey.referencedColumnNames);
|
|
494
507
|
// build queries
|
|
@@ -519,7 +532,9 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
519
532
|
const primaryColumns = clonedTable.primaryColumns;
|
|
520
533
|
// if table already have primary key, me must drop it and recreate again
|
|
521
534
|
if (primaryColumns.length > 0) {
|
|
522
|
-
const pkName =
|
|
535
|
+
const pkName = primaryColumns[0].primaryKeyConstraintName
|
|
536
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
537
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
|
|
523
538
|
const columnNames = primaryColumns
|
|
524
539
|
.map((column) => `"${column.name}"`)
|
|
525
540
|
.join(", ");
|
|
@@ -527,7 +542,9 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
527
542
|
downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNames})`));
|
|
528
543
|
}
|
|
529
544
|
primaryColumns.push(column);
|
|
530
|
-
const pkName =
|
|
545
|
+
const pkName = primaryColumns[0].primaryKeyConstraintName
|
|
546
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
547
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
|
|
531
548
|
const columnNames = primaryColumns
|
|
532
549
|
.map((column) => `"${column.name}"`)
|
|
533
550
|
.join(", ");
|
|
@@ -635,7 +652,8 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
635
652
|
upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} RENAME COLUMN "${oldColumn.name}" TO "${newColumn.name}"`));
|
|
636
653
|
downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} RENAME COLUMN "${newColumn.name}" TO "${oldColumn.name}"`));
|
|
637
654
|
// rename column primary key constraint
|
|
638
|
-
if (oldColumn.isPrimary === true
|
|
655
|
+
if (oldColumn.isPrimary === true &&
|
|
656
|
+
!oldColumn.primaryKeyConstraintName) {
|
|
639
657
|
const primaryColumns = clonedTable.primaryColumns;
|
|
640
658
|
// build old primary constraint name
|
|
641
659
|
const columnNames = primaryColumns.map((column) => column.name);
|
|
@@ -650,6 +668,10 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
650
668
|
}
|
|
651
669
|
// rename unique constraints
|
|
652
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;
|
|
653
675
|
// build new constraint name
|
|
654
676
|
unique.columnNames.splice(unique.columnNames.indexOf(oldColumn.name), 1);
|
|
655
677
|
unique.columnNames.push(newColumn.name);
|
|
@@ -662,6 +684,10 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
662
684
|
});
|
|
663
685
|
// rename index constraints
|
|
664
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;
|
|
665
691
|
// build new constraint name
|
|
666
692
|
index.columnNames.splice(index.columnNames.indexOf(oldColumn.name), 1);
|
|
667
693
|
index.columnNames.push(newColumn.name);
|
|
@@ -676,6 +702,10 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
676
702
|
clonedTable
|
|
677
703
|
.findColumnForeignKeys(oldColumn)
|
|
678
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;
|
|
679
709
|
// build new constraint name
|
|
680
710
|
foreignKey.columnNames.splice(foreignKey.columnNames.indexOf(oldColumn.name), 1);
|
|
681
711
|
foreignKey.columnNames.push(newColumn.name);
|
|
@@ -731,7 +761,9 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
731
761
|
const primaryColumns = clonedTable.primaryColumns;
|
|
732
762
|
// if primary column state changed, we must always drop existed constraint.
|
|
733
763
|
if (primaryColumns.length > 0) {
|
|
734
|
-
const pkName =
|
|
764
|
+
const pkName = primaryColumns[0].primaryKeyConstraintName
|
|
765
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
766
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
|
|
735
767
|
const columnNames = primaryColumns
|
|
736
768
|
.map((column) => `"${column.name}"`)
|
|
737
769
|
.join(", ");
|
|
@@ -743,7 +775,9 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
743
775
|
// update column in table
|
|
744
776
|
const column = clonedTable.columns.find((column) => column.name === newColumn.name);
|
|
745
777
|
column.isPrimary = true;
|
|
746
|
-
const pkName =
|
|
778
|
+
const pkName = primaryColumns[0].primaryKeyConstraintName
|
|
779
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
780
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
|
|
747
781
|
const columnNames = primaryColumns
|
|
748
782
|
.map((column) => `"${column.name}"`)
|
|
749
783
|
.join(", ");
|
|
@@ -758,7 +792,10 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
758
792
|
column.isPrimary = false;
|
|
759
793
|
// if we have another primary keys, we must recreate constraint.
|
|
760
794
|
if (primaryColumns.length > 0) {
|
|
761
|
-
const pkName =
|
|
795
|
+
const pkName = primaryColumns[0]
|
|
796
|
+
.primaryKeyConstraintName
|
|
797
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
798
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
|
|
762
799
|
const columnNames = primaryColumns
|
|
763
800
|
.map((column) => `"${column.name}"`)
|
|
764
801
|
.join(", ");
|
|
@@ -816,7 +853,9 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
816
853
|
const downQueries = [];
|
|
817
854
|
// drop primary key constraint
|
|
818
855
|
if (column.isPrimary) {
|
|
819
|
-
const pkName =
|
|
856
|
+
const pkName = column.primaryKeyConstraintName
|
|
857
|
+
? column.primaryKeyConstraintName
|
|
858
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, clonedTable.primaryColumns.map((column) => column.name));
|
|
820
859
|
const columnNames = clonedTable.primaryColumns
|
|
821
860
|
.map((primaryColumn) => `"${primaryColumn.name}"`)
|
|
822
861
|
.join(", ");
|
|
@@ -827,7 +866,10 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
827
866
|
tableColumn.isPrimary = false;
|
|
828
867
|
// if primary key have multiple columns, we must recreate it without dropped column
|
|
829
868
|
if (clonedTable.primaryColumns.length > 0) {
|
|
830
|
-
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));
|
|
831
873
|
const columnNames = clonedTable.primaryColumns
|
|
832
874
|
.map((primaryColumn) => `"${primaryColumn.name}"`)
|
|
833
875
|
.join(", ");
|
|
@@ -891,12 +933,12 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
891
933
|
/**
|
|
892
934
|
* Creates a new primary key.
|
|
893
935
|
*/
|
|
894
|
-
async createPrimaryKey(tableOrName, columnNames) {
|
|
936
|
+
async createPrimaryKey(tableOrName, columnNames, constraintName) {
|
|
895
937
|
const table = InstanceChecker_1.InstanceChecker.isTable(tableOrName)
|
|
896
938
|
? tableOrName
|
|
897
939
|
: await this.getCachedTable(tableOrName);
|
|
898
940
|
const clonedTable = table.clone();
|
|
899
|
-
const up = this.createPrimaryKeySql(table, columnNames);
|
|
941
|
+
const up = this.createPrimaryKeySql(table, columnNames, constraintName);
|
|
900
942
|
// mark columns as primary, because dropPrimaryKeySql build constraint name from table primary column names.
|
|
901
943
|
clonedTable.columns.forEach((column) => {
|
|
902
944
|
if (columnNames.find((columnName) => columnName === column.name))
|
|
@@ -920,7 +962,9 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
920
962
|
// if table already have primary columns, we must drop them.
|
|
921
963
|
const primaryColumns = clonedTable.primaryColumns;
|
|
922
964
|
if (primaryColumns.length > 0) {
|
|
923
|
-
const pkName =
|
|
965
|
+
const pkName = primaryColumns[0].primaryKeyConstraintName
|
|
966
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
967
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
|
|
924
968
|
const columnNamesString = primaryColumns
|
|
925
969
|
.map((column) => `"${column.name}"`)
|
|
926
970
|
.join(", ");
|
|
@@ -931,7 +975,9 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
931
975
|
clonedTable.columns
|
|
932
976
|
.filter((column) => columnNames.indexOf(column.name) !== -1)
|
|
933
977
|
.forEach((column) => (column.isPrimary = true));
|
|
934
|
-
const pkName =
|
|
978
|
+
const pkName = primaryColumns[0].primaryKeyConstraintName
|
|
979
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
980
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, columnNames);
|
|
935
981
|
const columnNamesString = columnNames
|
|
936
982
|
.map((columnName) => `"${columnName}"`)
|
|
937
983
|
.join(", ");
|
|
@@ -943,12 +989,12 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
943
989
|
/**
|
|
944
990
|
* Drops a primary key.
|
|
945
991
|
*/
|
|
946
|
-
async dropPrimaryKey(tableOrName) {
|
|
992
|
+
async dropPrimaryKey(tableOrName, constraintName) {
|
|
947
993
|
const table = InstanceChecker_1.InstanceChecker.isTable(tableOrName)
|
|
948
994
|
? tableOrName
|
|
949
995
|
: await this.getCachedTable(tableOrName);
|
|
950
996
|
const up = this.dropPrimaryKeySql(table);
|
|
951
|
-
const down = this.createPrimaryKeySql(table, table.primaryColumns.map((column) => column.name));
|
|
997
|
+
const down = this.createPrimaryKeySql(table, table.primaryColumns.map((column) => column.name), constraintName);
|
|
952
998
|
await this.executeQueries(up, down);
|
|
953
999
|
table.primaryColumns.forEach((column) => {
|
|
954
1000
|
column.isPrimary = false;
|
|
@@ -1347,7 +1393,6 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1347
1393
|
dbConstraint["CONSTRAINT_TYPE"] ===
|
|
1348
1394
|
"U");
|
|
1349
1395
|
});
|
|
1350
|
-
const isPrimary = !!columnConstraints.find((constraint) => constraint["CONSTRAINT_TYPE"] === "P");
|
|
1351
1396
|
const tableColumn = new TableColumn_1.TableColumn();
|
|
1352
1397
|
tableColumn.name = dbColumn["COLUMN_NAME"];
|
|
1353
1398
|
tableColumn.type =
|
|
@@ -1394,12 +1439,35 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1394
1439
|
? (tableColumn.default =
|
|
1395
1440
|
dbColumn["DATA_DEFAULT"].trim())
|
|
1396
1441
|
: undefined;
|
|
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
|
+
}
|
|
1397
1466
|
tableColumn.isNullable =
|
|
1398
1467
|
dbColumn["NULLABLE"] === "Y";
|
|
1399
1468
|
tableColumn.isUnique =
|
|
1400
1469
|
uniqueConstraints.length > 0 &&
|
|
1401
1470
|
!isConstraintComposite;
|
|
1402
|
-
tableColumn.isPrimary = isPrimary;
|
|
1403
1471
|
tableColumn.isGenerated =
|
|
1404
1472
|
dbColumn["IDENTITY_COLUMN"] === "YES";
|
|
1405
1473
|
if (tableColumn.isGenerated) {
|
|
@@ -1558,7 +1626,9 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1558
1626
|
}
|
|
1559
1627
|
const primaryColumns = table.columns.filter((column) => column.isPrimary);
|
|
1560
1628
|
if (primaryColumns.length > 0) {
|
|
1561
|
-
const primaryKeyName =
|
|
1629
|
+
const primaryKeyName = primaryColumns[0].primaryKeyConstraintName
|
|
1630
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
1631
|
+
: this.connection.namingStrategy.primaryKeyName(table, primaryColumns.map((column) => column.name));
|
|
1562
1632
|
const columnNames = primaryColumns
|
|
1563
1633
|
.map((column) => `"${column.name}"`)
|
|
1564
1634
|
.join(", ");
|
|
@@ -1635,8 +1705,10 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1635
1705
|
/**
|
|
1636
1706
|
* Builds create primary key sql.
|
|
1637
1707
|
*/
|
|
1638
|
-
createPrimaryKeySql(table, columnNames) {
|
|
1639
|
-
const primaryKeyName =
|
|
1708
|
+
createPrimaryKeySql(table, columnNames, constraintName) {
|
|
1709
|
+
const primaryKeyName = constraintName
|
|
1710
|
+
? constraintName
|
|
1711
|
+
: this.connection.namingStrategy.primaryKeyName(table, columnNames);
|
|
1640
1712
|
const columnNamesString = columnNames
|
|
1641
1713
|
.map((columnName) => `"${columnName}"`)
|
|
1642
1714
|
.join(", ");
|
|
@@ -1646,8 +1718,13 @@ class OracleQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1646
1718
|
* Builds drop primary key sql.
|
|
1647
1719
|
*/
|
|
1648
1720
|
dropPrimaryKeySql(table) {
|
|
1721
|
+
if (!table.primaryColumns.length)
|
|
1722
|
+
throw new error_1.TypeORMError(`Table ${table} has no primary keys.`);
|
|
1649
1723
|
const columnNames = table.primaryColumns.map((column) => column.name);
|
|
1650
|
-
const
|
|
1724
|
+
const constraintName = table.primaryColumns[0].primaryKeyConstraintName;
|
|
1725
|
+
const primaryKeyName = constraintName
|
|
1726
|
+
? constraintName
|
|
1727
|
+
: this.connection.namingStrategy.primaryKeyName(table, columnNames);
|
|
1651
1728
|
return new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${primaryKeyName}"`);
|
|
1652
1729
|
}
|
|
1653
1730
|
/**
|