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
|
*/
|
|
@@ -456,7 +456,8 @@ export class OracleQueryRunner extends BaseQueryRunner {
|
|
|
456
456
|
upQueries.push(new Query(`ALTER TABLE ${this.escapePath(oldTable)} RENAME TO "${newTableName}"`));
|
|
457
457
|
downQueries.push(new Query(`ALTER TABLE ${this.escapePath(newTable)} RENAME TO "${oldTableName}"`));
|
|
458
458
|
// rename primary key constraint
|
|
459
|
-
if (newTable.primaryColumns.length > 0
|
|
459
|
+
if (newTable.primaryColumns.length > 0 &&
|
|
460
|
+
!newTable.primaryColumns[0].primaryKeyConstraintName) {
|
|
460
461
|
const columnNames = newTable.primaryColumns.map((column) => column.name);
|
|
461
462
|
const oldPkName = this.connection.namingStrategy.primaryKeyName(oldTable, columnNames);
|
|
462
463
|
const newPkName = this.connection.namingStrategy.primaryKeyName(newTable, columnNames);
|
|
@@ -466,6 +467,10 @@ export class OracleQueryRunner extends BaseQueryRunner {
|
|
|
466
467
|
}
|
|
467
468
|
// rename unique constraints
|
|
468
469
|
newTable.uniques.forEach((unique) => {
|
|
470
|
+
const oldUniqueName = this.connection.namingStrategy.uniqueConstraintName(oldTable, unique.columnNames);
|
|
471
|
+
// Skip renaming if Unique has user defined constraint name
|
|
472
|
+
if (unique.name !== oldUniqueName)
|
|
473
|
+
return;
|
|
469
474
|
// build new constraint name
|
|
470
475
|
const newUniqueName = this.connection.namingStrategy.uniqueConstraintName(newTable, unique.columnNames);
|
|
471
476
|
// build queries
|
|
@@ -476,6 +481,10 @@ export class OracleQueryRunner extends BaseQueryRunner {
|
|
|
476
481
|
});
|
|
477
482
|
// rename index constraints
|
|
478
483
|
newTable.indices.forEach((index) => {
|
|
484
|
+
const oldIndexName = this.connection.namingStrategy.indexName(oldTable, index.columnNames, index.where);
|
|
485
|
+
// Skip renaming if Index has user defined constraint name
|
|
486
|
+
if (index.name !== oldIndexName)
|
|
487
|
+
return;
|
|
479
488
|
// build new constraint name
|
|
480
489
|
const newIndexName = this.connection.namingStrategy.indexName(newTable, index.columnNames, index.where);
|
|
481
490
|
// build queries
|
|
@@ -486,6 +495,10 @@ export class OracleQueryRunner extends BaseQueryRunner {
|
|
|
486
495
|
});
|
|
487
496
|
// rename foreign key constraints
|
|
488
497
|
newTable.foreignKeys.forEach((foreignKey) => {
|
|
498
|
+
const oldForeignKeyName = this.connection.namingStrategy.foreignKeyName(oldTable, foreignKey.columnNames, this.getTablePath(foreignKey), foreignKey.referencedColumnNames);
|
|
499
|
+
// Skip renaming if foreign key has user defined constraint name
|
|
500
|
+
if (foreignKey.name !== oldForeignKeyName)
|
|
501
|
+
return;
|
|
489
502
|
// build new constraint name
|
|
490
503
|
const newForeignKeyName = this.connection.namingStrategy.foreignKeyName(newTable, foreignKey.columnNames, this.getTablePath(foreignKey), foreignKey.referencedColumnNames);
|
|
491
504
|
// build queries
|
|
@@ -516,7 +529,9 @@ export class OracleQueryRunner extends BaseQueryRunner {
|
|
|
516
529
|
const primaryColumns = clonedTable.primaryColumns;
|
|
517
530
|
// if table already have primary key, me must drop it and recreate again
|
|
518
531
|
if (primaryColumns.length > 0) {
|
|
519
|
-
const pkName =
|
|
532
|
+
const pkName = primaryColumns[0].primaryKeyConstraintName
|
|
533
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
534
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
|
|
520
535
|
const columnNames = primaryColumns
|
|
521
536
|
.map((column) => `"${column.name}"`)
|
|
522
537
|
.join(", ");
|
|
@@ -524,7 +539,9 @@ export class OracleQueryRunner extends BaseQueryRunner {
|
|
|
524
539
|
downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNames})`));
|
|
525
540
|
}
|
|
526
541
|
primaryColumns.push(column);
|
|
527
|
-
const pkName =
|
|
542
|
+
const pkName = primaryColumns[0].primaryKeyConstraintName
|
|
543
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
544
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
|
|
528
545
|
const columnNames = primaryColumns
|
|
529
546
|
.map((column) => `"${column.name}"`)
|
|
530
547
|
.join(", ");
|
|
@@ -632,7 +649,8 @@ export class OracleQueryRunner extends BaseQueryRunner {
|
|
|
632
649
|
upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} RENAME COLUMN "${oldColumn.name}" TO "${newColumn.name}"`));
|
|
633
650
|
downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} RENAME COLUMN "${newColumn.name}" TO "${oldColumn.name}"`));
|
|
634
651
|
// rename column primary key constraint
|
|
635
|
-
if (oldColumn.isPrimary === true
|
|
652
|
+
if (oldColumn.isPrimary === true &&
|
|
653
|
+
!oldColumn.primaryKeyConstraintName) {
|
|
636
654
|
const primaryColumns = clonedTable.primaryColumns;
|
|
637
655
|
// build old primary constraint name
|
|
638
656
|
const columnNames = primaryColumns.map((column) => column.name);
|
|
@@ -647,6 +665,10 @@ export class OracleQueryRunner extends BaseQueryRunner {
|
|
|
647
665
|
}
|
|
648
666
|
// rename unique constraints
|
|
649
667
|
clonedTable.findColumnUniques(oldColumn).forEach((unique) => {
|
|
668
|
+
const oldUniqueName = this.connection.namingStrategy.uniqueConstraintName(clonedTable, unique.columnNames);
|
|
669
|
+
// Skip renaming if Unique has user defined constraint name
|
|
670
|
+
if (unique.name !== oldUniqueName)
|
|
671
|
+
return;
|
|
650
672
|
// build new constraint name
|
|
651
673
|
unique.columnNames.splice(unique.columnNames.indexOf(oldColumn.name), 1);
|
|
652
674
|
unique.columnNames.push(newColumn.name);
|
|
@@ -659,6 +681,10 @@ export class OracleQueryRunner extends BaseQueryRunner {
|
|
|
659
681
|
});
|
|
660
682
|
// rename index constraints
|
|
661
683
|
clonedTable.findColumnIndices(oldColumn).forEach((index) => {
|
|
684
|
+
const oldIndexName = this.connection.namingStrategy.indexName(clonedTable, index.columnNames, index.where);
|
|
685
|
+
// Skip renaming if Index has user defined constraint name
|
|
686
|
+
if (index.name !== oldIndexName)
|
|
687
|
+
return;
|
|
662
688
|
// build new constraint name
|
|
663
689
|
index.columnNames.splice(index.columnNames.indexOf(oldColumn.name), 1);
|
|
664
690
|
index.columnNames.push(newColumn.name);
|
|
@@ -673,6 +699,10 @@ export class OracleQueryRunner extends BaseQueryRunner {
|
|
|
673
699
|
clonedTable
|
|
674
700
|
.findColumnForeignKeys(oldColumn)
|
|
675
701
|
.forEach((foreignKey) => {
|
|
702
|
+
const foreignKeyName = this.connection.namingStrategy.foreignKeyName(clonedTable, foreignKey.columnNames, this.getTablePath(foreignKey), foreignKey.referencedColumnNames);
|
|
703
|
+
// Skip renaming if foreign key has user defined constraint name
|
|
704
|
+
if (foreignKey.name !== foreignKeyName)
|
|
705
|
+
return;
|
|
676
706
|
// build new constraint name
|
|
677
707
|
foreignKey.columnNames.splice(foreignKey.columnNames.indexOf(oldColumn.name), 1);
|
|
678
708
|
foreignKey.columnNames.push(newColumn.name);
|
|
@@ -728,7 +758,9 @@ export class OracleQueryRunner extends BaseQueryRunner {
|
|
|
728
758
|
const primaryColumns = clonedTable.primaryColumns;
|
|
729
759
|
// if primary column state changed, we must always drop existed constraint.
|
|
730
760
|
if (primaryColumns.length > 0) {
|
|
731
|
-
const pkName =
|
|
761
|
+
const pkName = primaryColumns[0].primaryKeyConstraintName
|
|
762
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
763
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
|
|
732
764
|
const columnNames = primaryColumns
|
|
733
765
|
.map((column) => `"${column.name}"`)
|
|
734
766
|
.join(", ");
|
|
@@ -740,7 +772,9 @@ export class OracleQueryRunner extends BaseQueryRunner {
|
|
|
740
772
|
// update column in table
|
|
741
773
|
const column = clonedTable.columns.find((column) => column.name === newColumn.name);
|
|
742
774
|
column.isPrimary = true;
|
|
743
|
-
const pkName =
|
|
775
|
+
const pkName = primaryColumns[0].primaryKeyConstraintName
|
|
776
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
777
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
|
|
744
778
|
const columnNames = primaryColumns
|
|
745
779
|
.map((column) => `"${column.name}"`)
|
|
746
780
|
.join(", ");
|
|
@@ -755,7 +789,10 @@ export class OracleQueryRunner extends BaseQueryRunner {
|
|
|
755
789
|
column.isPrimary = false;
|
|
756
790
|
// if we have another primary keys, we must recreate constraint.
|
|
757
791
|
if (primaryColumns.length > 0) {
|
|
758
|
-
const pkName =
|
|
792
|
+
const pkName = primaryColumns[0]
|
|
793
|
+
.primaryKeyConstraintName
|
|
794
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
795
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
|
|
759
796
|
const columnNames = primaryColumns
|
|
760
797
|
.map((column) => `"${column.name}"`)
|
|
761
798
|
.join(", ");
|
|
@@ -813,7 +850,9 @@ export class OracleQueryRunner extends BaseQueryRunner {
|
|
|
813
850
|
const downQueries = [];
|
|
814
851
|
// drop primary key constraint
|
|
815
852
|
if (column.isPrimary) {
|
|
816
|
-
const pkName =
|
|
853
|
+
const pkName = column.primaryKeyConstraintName
|
|
854
|
+
? column.primaryKeyConstraintName
|
|
855
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, clonedTable.primaryColumns.map((column) => column.name));
|
|
817
856
|
const columnNames = clonedTable.primaryColumns
|
|
818
857
|
.map((primaryColumn) => `"${primaryColumn.name}"`)
|
|
819
858
|
.join(", ");
|
|
@@ -824,7 +863,10 @@ export class OracleQueryRunner extends BaseQueryRunner {
|
|
|
824
863
|
tableColumn.isPrimary = false;
|
|
825
864
|
// if primary key have multiple columns, we must recreate it without dropped column
|
|
826
865
|
if (clonedTable.primaryColumns.length > 0) {
|
|
827
|
-
const pkName =
|
|
866
|
+
const pkName = clonedTable.primaryColumns[0]
|
|
867
|
+
.primaryKeyConstraintName
|
|
868
|
+
? clonedTable.primaryColumns[0].primaryKeyConstraintName
|
|
869
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, clonedTable.primaryColumns.map((column) => column.name));
|
|
828
870
|
const columnNames = clonedTable.primaryColumns
|
|
829
871
|
.map((primaryColumn) => `"${primaryColumn.name}"`)
|
|
830
872
|
.join(", ");
|
|
@@ -888,12 +930,12 @@ export class OracleQueryRunner extends BaseQueryRunner {
|
|
|
888
930
|
/**
|
|
889
931
|
* Creates a new primary key.
|
|
890
932
|
*/
|
|
891
|
-
async createPrimaryKey(tableOrName, columnNames) {
|
|
933
|
+
async createPrimaryKey(tableOrName, columnNames, constraintName) {
|
|
892
934
|
const table = InstanceChecker.isTable(tableOrName)
|
|
893
935
|
? tableOrName
|
|
894
936
|
: await this.getCachedTable(tableOrName);
|
|
895
937
|
const clonedTable = table.clone();
|
|
896
|
-
const up = this.createPrimaryKeySql(table, columnNames);
|
|
938
|
+
const up = this.createPrimaryKeySql(table, columnNames, constraintName);
|
|
897
939
|
// mark columns as primary, because dropPrimaryKeySql build constraint name from table primary column names.
|
|
898
940
|
clonedTable.columns.forEach((column) => {
|
|
899
941
|
if (columnNames.find((columnName) => columnName === column.name))
|
|
@@ -917,7 +959,9 @@ export class OracleQueryRunner extends BaseQueryRunner {
|
|
|
917
959
|
// if table already have primary columns, we must drop them.
|
|
918
960
|
const primaryColumns = clonedTable.primaryColumns;
|
|
919
961
|
if (primaryColumns.length > 0) {
|
|
920
|
-
const pkName =
|
|
962
|
+
const pkName = primaryColumns[0].primaryKeyConstraintName
|
|
963
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
964
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
|
|
921
965
|
const columnNamesString = primaryColumns
|
|
922
966
|
.map((column) => `"${column.name}"`)
|
|
923
967
|
.join(", ");
|
|
@@ -928,7 +972,9 @@ export class OracleQueryRunner extends BaseQueryRunner {
|
|
|
928
972
|
clonedTable.columns
|
|
929
973
|
.filter((column) => columnNames.indexOf(column.name) !== -1)
|
|
930
974
|
.forEach((column) => (column.isPrimary = true));
|
|
931
|
-
const pkName =
|
|
975
|
+
const pkName = primaryColumns[0].primaryKeyConstraintName
|
|
976
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
977
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, columnNames);
|
|
932
978
|
const columnNamesString = columnNames
|
|
933
979
|
.map((columnName) => `"${columnName}"`)
|
|
934
980
|
.join(", ");
|
|
@@ -940,12 +986,12 @@ export class OracleQueryRunner extends BaseQueryRunner {
|
|
|
940
986
|
/**
|
|
941
987
|
* Drops a primary key.
|
|
942
988
|
*/
|
|
943
|
-
async dropPrimaryKey(tableOrName) {
|
|
989
|
+
async dropPrimaryKey(tableOrName, constraintName) {
|
|
944
990
|
const table = InstanceChecker.isTable(tableOrName)
|
|
945
991
|
? tableOrName
|
|
946
992
|
: await this.getCachedTable(tableOrName);
|
|
947
993
|
const up = this.dropPrimaryKeySql(table);
|
|
948
|
-
const down = this.createPrimaryKeySql(table, table.primaryColumns.map((column) => column.name));
|
|
994
|
+
const down = this.createPrimaryKeySql(table, table.primaryColumns.map((column) => column.name), constraintName);
|
|
949
995
|
await this.executeQueries(up, down);
|
|
950
996
|
table.primaryColumns.forEach((column) => {
|
|
951
997
|
column.isPrimary = false;
|
|
@@ -1344,7 +1390,6 @@ export class OracleQueryRunner extends BaseQueryRunner {
|
|
|
1344
1390
|
dbConstraint["CONSTRAINT_TYPE"] ===
|
|
1345
1391
|
"U");
|
|
1346
1392
|
});
|
|
1347
|
-
const isPrimary = !!columnConstraints.find((constraint) => constraint["CONSTRAINT_TYPE"] === "P");
|
|
1348
1393
|
const tableColumn = new TableColumn();
|
|
1349
1394
|
tableColumn.name = dbColumn["COLUMN_NAME"];
|
|
1350
1395
|
tableColumn.type =
|
|
@@ -1391,12 +1436,35 @@ export class OracleQueryRunner extends BaseQueryRunner {
|
|
|
1391
1436
|
? (tableColumn.default =
|
|
1392
1437
|
dbColumn["DATA_DEFAULT"].trim())
|
|
1393
1438
|
: undefined;
|
|
1439
|
+
const primaryConstraint = columnConstraints.find((constraint) => constraint["CONSTRAINT_TYPE"] === "P");
|
|
1440
|
+
if (primaryConstraint) {
|
|
1441
|
+
tableColumn.isPrimary = true;
|
|
1442
|
+
// find another columns involved in primary key constraint
|
|
1443
|
+
const anotherPrimaryConstraints = dbConstraints.filter((constraint) => constraint["OWNER"] ===
|
|
1444
|
+
dbColumn["OWNER"] &&
|
|
1445
|
+
constraint["TABLE_NAME"] ===
|
|
1446
|
+
dbColumn["TABLE_NAME"] &&
|
|
1447
|
+
constraint["COLUMN_NAME"] !==
|
|
1448
|
+
dbColumn["COLUMN_NAME"] &&
|
|
1449
|
+
constraint["CONSTRAINT_TYPE"] ===
|
|
1450
|
+
"P");
|
|
1451
|
+
// collect all column names
|
|
1452
|
+
const columnNames = anotherPrimaryConstraints.map((constraint) => constraint["COLUMN_NAME"]);
|
|
1453
|
+
columnNames.push(dbColumn["COLUMN_NAME"]);
|
|
1454
|
+
// build default primary key constraint name
|
|
1455
|
+
const pkName = this.connection.namingStrategy.primaryKeyName(table, columnNames);
|
|
1456
|
+
// if primary key has user-defined constraint name, write it in table column
|
|
1457
|
+
if (primaryConstraint["CONSTRAINT_NAME"] !==
|
|
1458
|
+
pkName) {
|
|
1459
|
+
tableColumn.primaryKeyConstraintName =
|
|
1460
|
+
primaryConstraint["CONSTRAINT_NAME"];
|
|
1461
|
+
}
|
|
1462
|
+
}
|
|
1394
1463
|
tableColumn.isNullable =
|
|
1395
1464
|
dbColumn["NULLABLE"] === "Y";
|
|
1396
1465
|
tableColumn.isUnique =
|
|
1397
1466
|
uniqueConstraints.length > 0 &&
|
|
1398
1467
|
!isConstraintComposite;
|
|
1399
|
-
tableColumn.isPrimary = isPrimary;
|
|
1400
1468
|
tableColumn.isGenerated =
|
|
1401
1469
|
dbColumn["IDENTITY_COLUMN"] === "YES";
|
|
1402
1470
|
if (tableColumn.isGenerated) {
|
|
@@ -1555,7 +1623,9 @@ export class OracleQueryRunner extends BaseQueryRunner {
|
|
|
1555
1623
|
}
|
|
1556
1624
|
const primaryColumns = table.columns.filter((column) => column.isPrimary);
|
|
1557
1625
|
if (primaryColumns.length > 0) {
|
|
1558
|
-
const primaryKeyName =
|
|
1626
|
+
const primaryKeyName = primaryColumns[0].primaryKeyConstraintName
|
|
1627
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
1628
|
+
: this.connection.namingStrategy.primaryKeyName(table, primaryColumns.map((column) => column.name));
|
|
1559
1629
|
const columnNames = primaryColumns
|
|
1560
1630
|
.map((column) => `"${column.name}"`)
|
|
1561
1631
|
.join(", ");
|
|
@@ -1632,8 +1702,10 @@ export class OracleQueryRunner extends BaseQueryRunner {
|
|
|
1632
1702
|
/**
|
|
1633
1703
|
* Builds create primary key sql.
|
|
1634
1704
|
*/
|
|
1635
|
-
createPrimaryKeySql(table, columnNames) {
|
|
1636
|
-
const primaryKeyName =
|
|
1705
|
+
createPrimaryKeySql(table, columnNames, constraintName) {
|
|
1706
|
+
const primaryKeyName = constraintName
|
|
1707
|
+
? constraintName
|
|
1708
|
+
: this.connection.namingStrategy.primaryKeyName(table, columnNames);
|
|
1637
1709
|
const columnNamesString = columnNames
|
|
1638
1710
|
.map((columnName) => `"${columnName}"`)
|
|
1639
1711
|
.join(", ");
|
|
@@ -1643,8 +1715,13 @@ export class OracleQueryRunner extends BaseQueryRunner {
|
|
|
1643
1715
|
* Builds drop primary key sql.
|
|
1644
1716
|
*/
|
|
1645
1717
|
dropPrimaryKeySql(table) {
|
|
1718
|
+
if (!table.primaryColumns.length)
|
|
1719
|
+
throw new TypeORMError(`Table ${table} has no primary keys.`);
|
|
1646
1720
|
const columnNames = table.primaryColumns.map((column) => column.name);
|
|
1647
|
-
const
|
|
1721
|
+
const constraintName = table.primaryColumns[0].primaryKeyConstraintName;
|
|
1722
|
+
const primaryKeyName = constraintName
|
|
1723
|
+
? constraintName
|
|
1724
|
+
: this.connection.namingStrategy.primaryKeyName(table, columnNames);
|
|
1648
1725
|
return new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${primaryKeyName}"`);
|
|
1649
1726
|
}
|
|
1650
1727
|
/**
|