Skip to content

Commit ff2eebe

Browse files
committed
fix(migrations): optimize and fix typeorm query concurrency during table alters
1 parent 12fa1ee commit ff2eebe

2 files changed

Lines changed: 18 additions & 18 deletions

File tree

src/migrations/1685000001000-add-currency-and-location-fields-to-users.ts

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export class AddCurrencyAndLocationFieldsToUsers1685000001000 implements Migrati
1515
// Add country field
1616
if (!table.findColumnByName('country')) {
1717
await queryRunner.addColumn(
18-
'users',
18+
table,
1919
new TableColumn({
2020
name: 'country',
2121
type: 'varchar',
@@ -27,7 +27,7 @@ export class AddCurrencyAndLocationFieldsToUsers1685000001000 implements Migrati
2727
// Add countryCode field
2828
if (!table.findColumnByName('country_code')) {
2929
await queryRunner.addColumn(
30-
'users',
30+
table,
3131
new TableColumn({
3232
name: 'country_code',
3333
type: 'varchar',
@@ -37,7 +37,7 @@ export class AddCurrencyAndLocationFieldsToUsers1685000001000 implements Migrati
3737
);
3838
// Add index
3939
await queryRunner.createIndex(
40-
'users',
40+
table,
4141
new TableIndex({
4242
columnNames: ['country_code'],
4343
name: 'IDX_users_country_code',
@@ -48,7 +48,7 @@ export class AddCurrencyAndLocationFieldsToUsers1685000001000 implements Migrati
4848
// Add timezone field
4949
if (!table.findColumnByName('timezone')) {
5050
await queryRunner.addColumn(
51-
'users',
51+
table,
5252
new TableColumn({
5353
name: 'timezone',
5454
type: 'varchar',
@@ -60,7 +60,7 @@ export class AddCurrencyAndLocationFieldsToUsers1685000001000 implements Migrati
6060
// Add city field
6161
if (!table.findColumnByName('city')) {
6262
await queryRunner.addColumn(
63-
'users',
63+
table,
6464
new TableColumn({
6565
name: 'city',
6666
type: 'varchar',
@@ -72,7 +72,7 @@ export class AddCurrencyAndLocationFieldsToUsers1685000001000 implements Migrati
7272
// Add preferredCurrency field
7373
if (!table.findColumnByName('preferred_currency')) {
7474
await queryRunner.addColumn(
75-
'users',
75+
table,
7676
new TableColumn({
7777
name: 'preferred_currency',
7878
type: 'varchar',
@@ -83,7 +83,7 @@ export class AddCurrencyAndLocationFieldsToUsers1685000001000 implements Migrati
8383
);
8484
// Add index
8585
await queryRunner.createIndex(
86-
'users',
86+
table,
8787
new TableIndex({
8888
columnNames: ['preferred_currency'],
8989
name: 'IDX_users_preferred_currency',
@@ -102,35 +102,35 @@ export class AddCurrencyAndLocationFieldsToUsers1685000001000 implements Migrati
102102
// Drop indices first
103103
const countryCodeIndex = table.indices.find((i) => i.name === 'IDX_users_country_code');
104104
if (countryCodeIndex) {
105-
await queryRunner.dropIndex('users', countryCodeIndex);
105+
await queryRunner.dropIndex(table, countryCodeIndex);
106106
}
107107

108108
const preferredCurrencyIndex = table.indices.find(
109109
(i) => i.name === 'IDX_users_preferred_currency',
110110
);
111111
if (preferredCurrencyIndex) {
112-
await queryRunner.dropIndex('users', preferredCurrencyIndex);
112+
await queryRunner.dropIndex(table, preferredCurrencyIndex);
113113
}
114114

115115
// Drop columns
116116
if (table.findColumnByName('country')) {
117-
await queryRunner.dropColumn('users', 'country');
117+
await queryRunner.dropColumn(table, 'country');
118118
}
119119

120120
if (table.findColumnByName('country_code')) {
121-
await queryRunner.dropColumn('users', 'country_code');
121+
await queryRunner.dropColumn(table, 'country_code');
122122
}
123123

124124
if (table.findColumnByName('timezone')) {
125-
await queryRunner.dropColumn('users', 'timezone');
125+
await queryRunner.dropColumn(table, 'timezone');
126126
}
127127

128128
if (table.findColumnByName('city')) {
129-
await queryRunner.dropColumn('users', 'city');
129+
await queryRunner.dropColumn(table, 'city');
130130
}
131131

132132
if (table.findColumnByName('preferred_currency')) {
133-
await queryRunner.dropColumn('users', 'preferred_currency');
133+
await queryRunner.dropColumn(table, 'preferred_currency');
134134
}
135135
}
136136
}

src/migrations/1685000001001-add-currency-field-to-courses.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export class AddCurrencyFieldToCourses1685000001001 implements MigrationInterfac
1515
// Add currency field
1616
if (!table.findColumnByName('currency')) {
1717
await queryRunner.addColumn(
18-
'course',
18+
table,
1919
new TableColumn({
2020
name: 'currency',
2121
type: 'varchar',
@@ -26,7 +26,7 @@ export class AddCurrencyFieldToCourses1685000001001 implements MigrationInterfac
2626
);
2727
// Add index
2828
await queryRunner.createIndex(
29-
'course',
29+
table,
3030
new TableIndex({
3131
columnNames: ['currency'],
3232
name: 'IDX_course_currency',
@@ -45,12 +45,12 @@ export class AddCurrencyFieldToCourses1685000001001 implements MigrationInterfac
4545
// Drop index first
4646
const currencyIndex = table.indices.find((i) => i.name === 'IDX_course_currency');
4747
if (currencyIndex) {
48-
await queryRunner.dropIndex('course', currencyIndex);
48+
await queryRunner.dropIndex(table, currencyIndex);
4949
}
5050

5151
// Drop column
5252
if (table.findColumnByName('currency')) {
53-
await queryRunner.dropColumn('course', 'currency');
53+
await queryRunner.dropColumn(table, 'currency');
5454
}
5555
}
5656
}

0 commit comments

Comments
 (0)