-
-
Notifications
You must be signed in to change notification settings - Fork 6.4k
Open
Description
Issue description
Migration Droping and readding column with the same spec
Expected Behavior
When I run migration:generate it shouldn't drop a column, just to re-add it with the same spec
Actual Behavior
Migration adds
await queryRunner.query(`ALTER TABLE \`azure_groups_members\` DROP COLUMN \`createdByCoreUserId\``);
await queryRunner.query(`ALTER TABLE \`azure_groups_members\` ADD \`createdByCoreUserId\` varchar(255) NULL`);
import { MigrationInterface, QueryRunner } from "typeorm";
export class Migration1731093850771 implements MigrationInterface {
name = 'Migration1731093850771'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`at_tickets\` ADD \`autotaskCompanies\` int NULL`);
await queryRunner.query(`ALTER TABLE \`todos_todo\` CHANGE \`nextActionTime\` \`nextActionTime\` float(2) NULL`);
await queryRunner.query(`ALTER TABLE \`at_tickets\` CHANGE \`nextActionTime\` \`nextActionTime\` float(2) NULL`);
await queryRunner.query(`ALTER TABLE \`azure_groups_members\` DROP COLUMN \`createdByCoreUserId\``);
await queryRunner.query(`ALTER TABLE \`azure_groups_members\` ADD \`createdByCoreUserId\` varchar(255) NULL`);
await queryRunner.query(`ALTER TABLE \`azure_groups_members\` DROP COLUMN \`updatedByCoreUserId\``);
await queryRunner.query(`ALTER TABLE \`azure_groups_members\` ADD \`updatedByCoreUserId\` varchar(255) NULL`);
await queryRunner.query(`ALTER TABLE \`azure_directory_role_members\` DROP COLUMN \`createdByCoreUserId\``);
await queryRunner.query(`ALTER TABLE \`azure_directory_role_members\` ADD \`createdByCoreUserId\` varchar(255) NULL`);
await queryRunner.query(`ALTER TABLE \`azure_directory_role_members\` DROP COLUMN \`updatedByCoreUserId\``);
await queryRunner.query(`ALTER TABLE \`azure_directory_role_members\` ADD \`updatedByCoreUserId\` varchar(255) NULL`);
await queryRunner.query(`ALTER TABLE \`at_tickets\` ADD CONSTRAINT \`FK_6b220c64c020af86108d77d4d0a\` FOREIGN KEY (\`autotaskCompanies\`) REFERENCES \`at_companies\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`at_tickets\` DROP FOREIGN KEY \`FK_6b220c64c020af86108d77d4d0a\``);
await queryRunner.query(`ALTER TABLE \`azure_directory_role_members\` DROP COLUMN \`updatedByCoreUserId\``);
await queryRunner.query(`ALTER TABLE \`azure_directory_role_members\` ADD \`updatedByCoreUserId\` varchar(255) NULL`);
await queryRunner.query(`ALTER TABLE \`azure_directory_role_members\` DROP COLUMN \`createdByCoreUserId\``);
await queryRunner.query(`ALTER TABLE \`azure_directory_role_members\` ADD \`createdByCoreUserId\` varchar(255) NULL`);
await queryRunner.query(`ALTER TABLE \`azure_groups_members\` DROP COLUMN \`updatedByCoreUserId\``);
await queryRunner.query(`ALTER TABLE \`azure_groups_members\` ADD \`updatedByCoreUserId\` varchar(255) NULL`);
await queryRunner.query(`ALTER TABLE \`azure_groups_members\` DROP COLUMN \`createdByCoreUserId\``);
await queryRunner.query(`ALTER TABLE \`azure_groups_members\` ADD \`createdByCoreUserId\` varchar(255) NULL`);
await queryRunner.query(`ALTER TABLE \`at_tickets\` CHANGE \`nextActionTime\` \`nextActionTime\` float(12) NULL`);
await queryRunner.query(`ALTER TABLE \`todos_todo\` CHANGE \`nextActionTime\` \`nextActionTime\` float(12) NULL`);
await queryRunner.query(`ALTER TABLE \`at_tickets\` DROP COLUMN \`autotaskCompanies\``);
}
}
Steps to reproduce
I don't have minimal code to reproduce it, The column's in question are added by extending a class, so may, it started when I used a ManyToMany and JoinTable, so I am suspecting it is somehow doing that
@ManyToMany(() => AzureGroups , {onDelete: 'NO ACTION', onUpdate: 'NO ACTION'})
@JoinTable({
name: 'azure_groups_members',
joinColumn: {
name: 'azureUserId',
referencedColumnName: 'id'
},
inverseJoinColumn: {
name: 'azureGroupId',
referencedColumnName: 'id'
},
synchronize: false
})
AzureGroups: AzureGroups[];
```
### My Environment
| Dependency | Version |
| --- | --- |
| Operating System | Ubuntu 24.04 |
| Node.js version | 18.20.2 |
| Typescript version | 5.1.6 |
| TypeORM version | 0.3.20 |
### Additional Context
_No response_
### Relevant Database Driver(s)
- [ ] aurora-mysql
- [ ] aurora-postgres
- [ ] better-sqlite3
- [ ] cockroachdb
- [ ] cordova
- [ ] expo
- [ ] mongodb
- [X] mysql
- [ ] nativescript
- [ ] oracle
- [ ] postgres
- [ ] react-native
- [ ] sap
- [ ] spanner
- [ ] sqlite
- [ ] sqlite-abstract
- [ ] sqljs
- [ ] sqlserver
### Are you willing to resolve this issue by submitting a Pull Request?
No, I don’t have the time and I’m okay to wait for the community / maintainers to resolve this issue.