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 SqlServerQueryRunner extends BaseQueryRunner implements Que
|
|
|
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 SqlServerQueryRunner extends BaseQueryRunner implements Que
|
|
|
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 SqlServerQueryRunner extends BaseQueryRunner implements Que
|
|
|
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
|
*/
|
|
@@ -604,7 +604,8 @@ class SqlServerQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
604
604
|
upQueries.push(new Query_1.Query(`EXEC sp_rename "${this.getTablePath(oldTable)}", "${newTableName}"`));
|
|
605
605
|
downQueries.push(new Query_1.Query(`EXEC sp_rename "${this.getTablePath(newTable)}", "${oldTableName}"`));
|
|
606
606
|
// rename primary key constraint
|
|
607
|
-
if (newTable.primaryColumns.length > 0
|
|
607
|
+
if (newTable.primaryColumns.length > 0 &&
|
|
608
|
+
!newTable.primaryColumns[0].primaryKeyConstraintName) {
|
|
608
609
|
const columnNames = newTable.primaryColumns.map((column) => column.name);
|
|
609
610
|
const oldPkName = this.connection.namingStrategy.primaryKeyName(oldTable, columnNames);
|
|
610
611
|
const newPkName = this.connection.namingStrategy.primaryKeyName(newTable, columnNames);
|
|
@@ -614,6 +615,10 @@ class SqlServerQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
614
615
|
}
|
|
615
616
|
// rename unique constraints
|
|
616
617
|
newTable.uniques.forEach((unique) => {
|
|
618
|
+
const oldUniqueName = this.connection.namingStrategy.uniqueConstraintName(oldTable, unique.columnNames);
|
|
619
|
+
// Skip renaming if Unique has user defined constraint name
|
|
620
|
+
if (unique.name !== oldUniqueName)
|
|
621
|
+
return;
|
|
617
622
|
// build new constraint name
|
|
618
623
|
const newUniqueName = this.connection.namingStrategy.uniqueConstraintName(newTable, unique.columnNames);
|
|
619
624
|
// build queries
|
|
@@ -624,6 +629,10 @@ class SqlServerQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
624
629
|
});
|
|
625
630
|
// rename index constraints
|
|
626
631
|
newTable.indices.forEach((index) => {
|
|
632
|
+
const oldIndexName = this.connection.namingStrategy.indexName(oldTable, index.columnNames, index.where);
|
|
633
|
+
// Skip renaming if Index has user defined constraint name
|
|
634
|
+
if (index.name !== oldIndexName)
|
|
635
|
+
return;
|
|
627
636
|
// build new constraint name
|
|
628
637
|
const newIndexName = this.connection.namingStrategy.indexName(newTable, index.columnNames, index.where);
|
|
629
638
|
// build queries
|
|
@@ -634,6 +643,10 @@ class SqlServerQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
634
643
|
});
|
|
635
644
|
// rename foreign key constraints
|
|
636
645
|
newTable.foreignKeys.forEach((foreignKey) => {
|
|
646
|
+
const oldForeignKeyName = this.connection.namingStrategy.foreignKeyName(oldTable, foreignKey.columnNames, this.getTablePath(foreignKey), foreignKey.referencedColumnNames);
|
|
647
|
+
// Skip renaming if foreign key has user defined constraint name
|
|
648
|
+
if (foreignKey.name !== oldForeignKeyName)
|
|
649
|
+
return;
|
|
637
650
|
// build new constraint name
|
|
638
651
|
const newForeignKeyName = this.connection.namingStrategy.foreignKeyName(newTable, foreignKey.columnNames, this.getTablePath(foreignKey), foreignKey.referencedColumnNames);
|
|
639
652
|
// build queries
|
|
@@ -669,7 +682,9 @@ class SqlServerQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
669
682
|
const primaryColumns = clonedTable.primaryColumns;
|
|
670
683
|
// if table already have primary key, me must drop it and recreate again
|
|
671
684
|
if (primaryColumns.length > 0) {
|
|
672
|
-
const pkName =
|
|
685
|
+
const pkName = primaryColumns[0].primaryKeyConstraintName
|
|
686
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
687
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
|
|
673
688
|
const columnNames = primaryColumns
|
|
674
689
|
.map((column) => `"${column.name}"`)
|
|
675
690
|
.join(", ");
|
|
@@ -677,7 +692,9 @@ class SqlServerQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
677
692
|
downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNames})`));
|
|
678
693
|
}
|
|
679
694
|
primaryColumns.push(column);
|
|
680
|
-
const pkName =
|
|
695
|
+
const pkName = primaryColumns[0].primaryKeyConstraintName
|
|
696
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
697
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
|
|
681
698
|
const columnNames = primaryColumns
|
|
682
699
|
.map((column) => `"${column.name}"`)
|
|
683
700
|
.join(", ");
|
|
@@ -815,7 +832,9 @@ class SqlServerQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
815
832
|
// rename the column
|
|
816
833
|
upQueries.push(new Query_1.Query(`EXEC sp_rename "${this.getTablePath(table)}.${oldColumn.name}", "${newColumn.name}"`));
|
|
817
834
|
downQueries.push(new Query_1.Query(`EXEC sp_rename "${this.getTablePath(table)}.${newColumn.name}", "${oldColumn.name}"`));
|
|
818
|
-
|
|
835
|
+
// rename column primary key constraint
|
|
836
|
+
if (oldColumn.isPrimary === true &&
|
|
837
|
+
!oldColumn.primaryKeyConstraintName) {
|
|
819
838
|
const primaryColumns = clonedTable.primaryColumns;
|
|
820
839
|
// build old primary constraint name
|
|
821
840
|
const columnNames = primaryColumns.map((column) => column.name);
|
|
@@ -831,6 +850,10 @@ class SqlServerQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
831
850
|
}
|
|
832
851
|
// rename index constraints
|
|
833
852
|
clonedTable.findColumnIndices(oldColumn).forEach((index) => {
|
|
853
|
+
const oldIndexName = this.connection.namingStrategy.indexName(clonedTable, index.columnNames, index.where);
|
|
854
|
+
// Skip renaming if Index has user defined constraint name
|
|
855
|
+
if (index.name !== oldIndexName)
|
|
856
|
+
return;
|
|
834
857
|
// build new constraint name
|
|
835
858
|
index.columnNames.splice(index.columnNames.indexOf(oldColumn.name), 1);
|
|
836
859
|
index.columnNames.push(newColumn.name);
|
|
@@ -845,6 +868,10 @@ class SqlServerQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
845
868
|
clonedTable
|
|
846
869
|
.findColumnForeignKeys(oldColumn)
|
|
847
870
|
.forEach((foreignKey) => {
|
|
871
|
+
const foreignKeyName = this.connection.namingStrategy.foreignKeyName(clonedTable, foreignKey.columnNames, this.getTablePath(foreignKey), foreignKey.referencedColumnNames);
|
|
872
|
+
// Skip renaming if foreign key has user defined constraint name
|
|
873
|
+
if (foreignKey.name !== foreignKeyName)
|
|
874
|
+
return;
|
|
848
875
|
// build new constraint name
|
|
849
876
|
foreignKey.columnNames.splice(foreignKey.columnNames.indexOf(oldColumn.name), 1);
|
|
850
877
|
foreignKey.columnNames.push(newColumn.name);
|
|
@@ -869,6 +896,10 @@ class SqlServerQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
869
896
|
});
|
|
870
897
|
// rename unique constraints
|
|
871
898
|
clonedTable.findColumnUniques(oldColumn).forEach((unique) => {
|
|
899
|
+
const oldUniqueName = this.connection.namingStrategy.uniqueConstraintName(clonedTable, unique.columnNames);
|
|
900
|
+
// Skip renaming if Unique has user defined constraint name
|
|
901
|
+
if (unique.name !== oldUniqueName)
|
|
902
|
+
return;
|
|
872
903
|
// build new constraint name
|
|
873
904
|
unique.columnNames.splice(unique.columnNames.indexOf(oldColumn.name), 1);
|
|
874
905
|
unique.columnNames.push(newColumn.name);
|
|
@@ -907,7 +938,9 @@ class SqlServerQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
907
938
|
const primaryColumns = clonedTable.primaryColumns;
|
|
908
939
|
// if primary column state changed, we must always drop existed constraint.
|
|
909
940
|
if (primaryColumns.length > 0) {
|
|
910
|
-
const pkName =
|
|
941
|
+
const pkName = primaryColumns[0].primaryKeyConstraintName
|
|
942
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
943
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
|
|
911
944
|
const columnNames = primaryColumns
|
|
912
945
|
.map((column) => `"${column.name}"`)
|
|
913
946
|
.join(", ");
|
|
@@ -919,7 +952,9 @@ class SqlServerQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
919
952
|
// update column in table
|
|
920
953
|
const column = clonedTable.columns.find((column) => column.name === newColumn.name);
|
|
921
954
|
column.isPrimary = true;
|
|
922
|
-
const pkName =
|
|
955
|
+
const pkName = primaryColumns[0].primaryKeyConstraintName
|
|
956
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
957
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
|
|
923
958
|
const columnNames = primaryColumns
|
|
924
959
|
.map((column) => `"${column.name}"`)
|
|
925
960
|
.join(", ");
|
|
@@ -934,7 +969,10 @@ class SqlServerQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
934
969
|
column.isPrimary = false;
|
|
935
970
|
// if we have another primary keys, we must recreate constraint.
|
|
936
971
|
if (primaryColumns.length > 0) {
|
|
937
|
-
const pkName =
|
|
972
|
+
const pkName = primaryColumns[0]
|
|
973
|
+
.primaryKeyConstraintName
|
|
974
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
975
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
|
|
938
976
|
const columnNames = primaryColumns
|
|
939
977
|
.map((column) => `"${column.name}"`)
|
|
940
978
|
.join(", ");
|
|
@@ -1007,7 +1045,9 @@ class SqlServerQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1007
1045
|
const downQueries = [];
|
|
1008
1046
|
// drop primary key constraint
|
|
1009
1047
|
if (column.isPrimary) {
|
|
1010
|
-
const pkName =
|
|
1048
|
+
const pkName = column.primaryKeyConstraintName
|
|
1049
|
+
? column.primaryKeyConstraintName
|
|
1050
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, clonedTable.primaryColumns.map((column) => column.name));
|
|
1011
1051
|
const columnNames = clonedTable.primaryColumns
|
|
1012
1052
|
.map((primaryColumn) => `"${primaryColumn.name}"`)
|
|
1013
1053
|
.join(", ");
|
|
@@ -1018,7 +1058,10 @@ class SqlServerQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1018
1058
|
tableColumn.isPrimary = false;
|
|
1019
1059
|
// if primary key have multiple columns, we must recreate it without dropped column
|
|
1020
1060
|
if (clonedTable.primaryColumns.length > 0) {
|
|
1021
|
-
const pkName =
|
|
1061
|
+
const pkName = clonedTable.primaryColumns[0]
|
|
1062
|
+
.primaryKeyConstraintName
|
|
1063
|
+
? clonedTable.primaryColumns[0].primaryKeyConstraintName
|
|
1064
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, clonedTable.primaryColumns.map((column) => column.name));
|
|
1022
1065
|
const columnNames = clonedTable.primaryColumns
|
|
1023
1066
|
.map((primaryColumn) => `"${primaryColumn.name}"`)
|
|
1024
1067
|
.join(", ");
|
|
@@ -1097,12 +1140,12 @@ class SqlServerQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1097
1140
|
/**
|
|
1098
1141
|
* Creates a new primary key.
|
|
1099
1142
|
*/
|
|
1100
|
-
async createPrimaryKey(tableOrName, columnNames) {
|
|
1143
|
+
async createPrimaryKey(tableOrName, columnNames, constraintName) {
|
|
1101
1144
|
const table = InstanceChecker_1.InstanceChecker.isTable(tableOrName)
|
|
1102
1145
|
? tableOrName
|
|
1103
1146
|
: await this.getCachedTable(tableOrName);
|
|
1104
1147
|
const clonedTable = table.clone();
|
|
1105
|
-
const up = this.createPrimaryKeySql(table, columnNames);
|
|
1148
|
+
const up = this.createPrimaryKeySql(table, columnNames, constraintName);
|
|
1106
1149
|
// mark columns as primary, because dropPrimaryKeySql build constraint name from table primary column names.
|
|
1107
1150
|
clonedTable.columns.forEach((column) => {
|
|
1108
1151
|
if (columnNames.find((columnName) => columnName === column.name))
|
|
@@ -1126,7 +1169,9 @@ class SqlServerQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1126
1169
|
// if table already have primary columns, we must drop them.
|
|
1127
1170
|
const primaryColumns = clonedTable.primaryColumns;
|
|
1128
1171
|
if (primaryColumns.length > 0) {
|
|
1129
|
-
const pkName =
|
|
1172
|
+
const pkName = primaryColumns[0].primaryKeyConstraintName
|
|
1173
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
1174
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
|
|
1130
1175
|
const columnNamesString = primaryColumns
|
|
1131
1176
|
.map((column) => `"${column.name}"`)
|
|
1132
1177
|
.join(", ");
|
|
@@ -1137,7 +1182,9 @@ class SqlServerQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1137
1182
|
clonedTable.columns
|
|
1138
1183
|
.filter((column) => columnNames.indexOf(column.name) !== -1)
|
|
1139
1184
|
.forEach((column) => (column.isPrimary = true));
|
|
1140
|
-
const pkName =
|
|
1185
|
+
const pkName = primaryColumns[0].primaryKeyConstraintName
|
|
1186
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
1187
|
+
: this.connection.namingStrategy.primaryKeyName(clonedTable, columnNames);
|
|
1141
1188
|
const columnNamesString = columnNames
|
|
1142
1189
|
.map((columnName) => `"${columnName}"`)
|
|
1143
1190
|
.join(", ");
|
|
@@ -1149,12 +1196,12 @@ class SqlServerQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1149
1196
|
/**
|
|
1150
1197
|
* Drops a primary key.
|
|
1151
1198
|
*/
|
|
1152
|
-
async dropPrimaryKey(tableOrName) {
|
|
1199
|
+
async dropPrimaryKey(tableOrName, constraintName) {
|
|
1153
1200
|
const table = InstanceChecker_1.InstanceChecker.isTable(tableOrName)
|
|
1154
1201
|
? tableOrName
|
|
1155
1202
|
: await this.getCachedTable(tableOrName);
|
|
1156
1203
|
const up = this.dropPrimaryKeySql(table);
|
|
1157
|
-
const down = this.createPrimaryKeySql(table, table.primaryColumns.map((column) => column.name));
|
|
1204
|
+
const down = this.createPrimaryKeySql(table, table.primaryColumns.map((column) => column.name), constraintName);
|
|
1158
1205
|
await this.executeQueries(up, down);
|
|
1159
1206
|
table.primaryColumns.forEach((column) => {
|
|
1160
1207
|
column.isPrimary = false;
|
|
@@ -1727,8 +1774,6 @@ class SqlServerQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1727
1774
|
dbConstraint["COLUMN_NAME"] !==
|
|
1728
1775
|
dbColumn["COLUMN_NAME"]);
|
|
1729
1776
|
});
|
|
1730
|
-
const isPrimary = !!columnConstraints.find((constraint) => constraint["CONSTRAINT_TYPE"] ===
|
|
1731
|
-
"PRIMARY KEY");
|
|
1732
1777
|
const isGenerated = !!dbIdentityColumns.find((column) => column["TABLE_NAME"] ===
|
|
1733
1778
|
dbColumn["TABLE_NAME"] &&
|
|
1734
1779
|
column["TABLE_SCHEMA"] ===
|
|
@@ -1789,6 +1834,33 @@ class SqlServerQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1789
1834
|
}
|
|
1790
1835
|
}
|
|
1791
1836
|
}
|
|
1837
|
+
const primaryConstraint = columnConstraints.find((constraint) => constraint["CONSTRAINT_TYPE"] ===
|
|
1838
|
+
"PRIMARY KEY");
|
|
1839
|
+
if (primaryConstraint) {
|
|
1840
|
+
tableColumn.isPrimary = true;
|
|
1841
|
+
// find another columns involved in primary key constraint
|
|
1842
|
+
const anotherPrimaryConstraints = dbConstraints.filter((constraint) => constraint["TABLE_NAME"] ===
|
|
1843
|
+
dbColumn["TABLE_NAME"] &&
|
|
1844
|
+
constraint["TABLE_SCHEMA"] ===
|
|
1845
|
+
dbColumn["TABLE_SCHEMA"] &&
|
|
1846
|
+
constraint["TABLE_CATALOG"] ===
|
|
1847
|
+
dbColumn["TABLE_CATALOG"] &&
|
|
1848
|
+
constraint["COLUMN_NAME"] !==
|
|
1849
|
+
dbColumn["COLUMN_NAME"] &&
|
|
1850
|
+
constraint["CONSTRAINT_TYPE"] ===
|
|
1851
|
+
"PRIMARY KEY");
|
|
1852
|
+
// collect all column names
|
|
1853
|
+
const columnNames = anotherPrimaryConstraints.map((constraint) => constraint["COLUMN_NAME"]);
|
|
1854
|
+
columnNames.push(dbColumn["COLUMN_NAME"]);
|
|
1855
|
+
// build default primary key constraint name
|
|
1856
|
+
const pkName = this.connection.namingStrategy.primaryKeyName(table, columnNames);
|
|
1857
|
+
// if primary key has user-defined constraint name, write it in table column
|
|
1858
|
+
if (primaryConstraint["CONSTRAINT_NAME"] !==
|
|
1859
|
+
pkName) {
|
|
1860
|
+
tableColumn.primaryKeyConstraintName =
|
|
1861
|
+
primaryConstraint["CONSTRAINT_NAME"];
|
|
1862
|
+
}
|
|
1863
|
+
}
|
|
1792
1864
|
tableColumn.default =
|
|
1793
1865
|
dbColumn["COLUMN_DEFAULT"] !== null &&
|
|
1794
1866
|
dbColumn["COLUMN_DEFAULT"] !== undefined
|
|
@@ -1796,7 +1868,6 @@ class SqlServerQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1796
1868
|
: undefined;
|
|
1797
1869
|
tableColumn.isNullable =
|
|
1798
1870
|
dbColumn["IS_NULLABLE"] === "YES";
|
|
1799
|
-
tableColumn.isPrimary = isPrimary;
|
|
1800
1871
|
tableColumn.isUnique =
|
|
1801
1872
|
uniqueConstraints.length > 0 &&
|
|
1802
1873
|
!isConstraintComposite;
|
|
@@ -2003,7 +2074,9 @@ class SqlServerQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
2003
2074
|
}
|
|
2004
2075
|
const primaryColumns = table.columns.filter((column) => column.isPrimary);
|
|
2005
2076
|
if (primaryColumns.length > 0) {
|
|
2006
|
-
const primaryKeyName =
|
|
2077
|
+
const primaryKeyName = primaryColumns[0].primaryKeyConstraintName
|
|
2078
|
+
? primaryColumns[0].primaryKeyConstraintName
|
|
2079
|
+
: this.connection.namingStrategy.primaryKeyName(table, primaryColumns.map((column) => column.name));
|
|
2007
2080
|
const columnNames = primaryColumns
|
|
2008
2081
|
.map((column) => `"${column.name}"`)
|
|
2009
2082
|
.join(", ");
|
|
@@ -2094,8 +2167,10 @@ class SqlServerQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
2094
2167
|
/**
|
|
2095
2168
|
* Builds create primary key sql.
|
|
2096
2169
|
*/
|
|
2097
|
-
createPrimaryKeySql(table, columnNames) {
|
|
2098
|
-
const primaryKeyName =
|
|
2170
|
+
createPrimaryKeySql(table, columnNames, constraintName) {
|
|
2171
|
+
const primaryKeyName = constraintName
|
|
2172
|
+
? constraintName
|
|
2173
|
+
: this.connection.namingStrategy.primaryKeyName(table, columnNames);
|
|
2099
2174
|
const columnNamesString = columnNames
|
|
2100
2175
|
.map((columnName) => `"${columnName}"`)
|
|
2101
2176
|
.join(", ");
|
|
@@ -2106,7 +2181,10 @@ class SqlServerQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
2106
2181
|
*/
|
|
2107
2182
|
dropPrimaryKeySql(table) {
|
|
2108
2183
|
const columnNames = table.primaryColumns.map((column) => column.name);
|
|
2109
|
-
const
|
|
2184
|
+
const constraintName = table.primaryColumns[0].primaryKeyConstraintName;
|
|
2185
|
+
const primaryKeyName = constraintName
|
|
2186
|
+
? constraintName
|
|
2187
|
+
: this.connection.namingStrategy.primaryKeyName(table, columnNames);
|
|
2110
2188
|
return new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${primaryKeyName}"`);
|
|
2111
2189
|
}
|
|
2112
2190
|
/**
|