-
-
Notifications
You must be signed in to change notification settings - Fork 6.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
migration:generate generates migration queries when nothing has changed #8167
Comments
Just a guess as I had the same issue earlier, but do you use a custom naming strategy? If you do, that might be the issue, if you didn't configure the typeorm cli correctly, to use the same naming strategy as the connection in your actual program. |
@Kage0x3B hmm interesting... I didn't add table names to my entity classes. Is that what you mean? One thing I noticed was, if I do add a property to an entity class, it does put the query for that column first, like it seems to know that it's new. |
No, doesn't seem like the same problem then. I meant naming strategies, https://typeorm.io/#/naming-strategy/. Output from ALTER TABLE `database-name`.`order_product` DROP FOREIGN KEY `FK_073c85ed133e05241040bd70f02`;
ALTER TABLE `database-name`.`order_product` DROP PRIMARY KEY;
ALTER TABLE `database-name`.`order_product` ADD PRIMARY KEY (`orderId`);
ALTER TABLE `database-name`.`order_product` DROP COLUMN `productId`;
ALTER TABLE `database-name`.`order_product` ADD `productId` char(36) NOT NULL;
ALTER TABLE `database-name`.`order_product` DROP PRIMARY KEY;
ALTER TABLE `database-name`.`order_product` ADD PRIMARY KEY (`orderId`, `productId`);
ALTER TABLE `database-name`.`stored_product` DROP FOREIGN KEY `FK_a2e4f85748cc0aa9265ab5ad2d9`;
ALTER TABLE `database-name`.`stored_product` DROP PRIMARY KEY;
ALTER TABLE `database-name`.`stored_product` ADD PRIMARY KEY (`storageId`);
ALTER TABLE `database-name`.`stored_product` DROP COLUMN `productId`;
ALTER TABLE `database-name`.`stored_product` ADD `productId` char(36) NOT NULL;
ALTER TABLE `database-name`.`stored_product` DROP PRIMARY KEY;
ALTER TABLE `database-name`.`stored_product` ADD PRIMARY KEY (`storageId`, `productId`);
ALTER TABLE `database-name`.`order_packet_content` DROP FOREIGN KEY `FK_e1ced39d64c6dea53d576f3741b`;
ALTER TABLE `database-name`.`incoming_stock_line_item` DROP FOREIGN KEY `FK_cb774b7c07631841941dc143d86`;
ALTER TABLE `database-name`.`product` DROP FOREIGN KEY `FK_1c4b1934c3e8c5b69b3d3d311d6`;
ALTER TABLE `database-name`.`product` DROP PRIMARY KEY;
ALTER TABLE `database-name`.`product` DROP COLUMN `id`;
ALTER TABLE `database-name`.`product` ADD `id` char(36) NOT NULL PRIMARY KEY;
ALTER TABLE `database-name`.`product` DROP COLUMN `shopId`;
ALTER TABLE `database-name`.`product` ADD `shopId` char(36) NOT NULL;
ALTER TABLE `database-name`.`order` DROP FOREIGN KEY `FK_318cc4bdeb61d336e3a01f4b767`;
ALTER TABLE `database-name`.`incoming_stock` DROP FOREIGN KEY `FK_5caa8827445711bec7913eb1760`;
ALTER TABLE `database-name`.`shop` DROP PRIMARY KEY;
ALTER TABLE `database-name`.`shop` DROP COLUMN `id`;
ALTER TABLE `database-name`.`shop` ADD `id` char(36) NOT NULL PRIMARY KEY;
ALTER TABLE `database-name`.`order_packet_content` DROP PRIMARY KEY;
ALTER TABLE `database-name`.`order_packet_content` ADD PRIMARY KEY (`packetId`);
ALTER TABLE `database-name`.`order_packet_content` DROP COLUMN `productId`;
ALTER TABLE `database-name`.`order_packet_content` ADD `productId` char(36) NOT NULL;
ALTER TABLE `database-name`.`order_packet_content` DROP PRIMARY KEY;
ALTER TABLE `database-name`.`order_packet_content` ADD PRIMARY KEY (`packetId`, `productId`);
ALTER TABLE `database-name`.`order` DROP COLUMN `shopId`;
ALTER TABLE `database-name`.`order` ADD `shopId` char(36) NOT NULL;
ALTER TABLE `database-name`.`incoming_stock_line_item` DROP FOREIGN KEY `FK_2343e86ad3ca49457b1816c9ba8`;
ALTER TABLE `database-name`.`incoming_stock_line_item` DROP PRIMARY KEY;
ALTER TABLE `database-name`.`incoming_stock_line_item` ADD PRIMARY KEY (`productId`);
ALTER TABLE `database-name`.`incoming_stock_line_item` DROP COLUMN `incomingStockId`;
ALTER TABLE `database-name`.`incoming_stock_line_item` ADD `incomingStockId` char(36) NOT NULL;
ALTER TABLE `database-name`.`incoming_stock_line_item` DROP PRIMARY KEY;
ALTER TABLE `database-name`.`incoming_stock_line_item` ADD PRIMARY KEY (`productId`, `incomingStockId`);
ALTER TABLE `database-name`.`incoming_stock_line_item` DROP PRIMARY KEY;
ALTER TABLE `database-name`.`incoming_stock_line_item` ADD PRIMARY KEY (`incomingStockId`);
ALTER TABLE `database-name`.`incoming_stock_line_item` DROP COLUMN `productId`;
ALTER TABLE `database-name`.`incoming_stock_line_item` ADD `productId` char(36) NOT NULL;
ALTER TABLE `database-name`.`incoming_stock_line_item` DROP PRIMARY KEY;
ALTER TABLE `database-name`.`incoming_stock_line_item` ADD PRIMARY KEY (`incomingStockId`, `productId`);
ALTER TABLE `database-name`.`incoming_stock` DROP PRIMARY KEY;
ALTER TABLE `database-name`.`incoming_stock` DROP COLUMN `id`;
ALTER TABLE `database-name`.`incoming_stock` ADD `id` char(36) NOT NULL PRIMARY KEY;
ALTER TABLE `database-name`.`incoming_stock` DROP COLUMN `shopId`;
ALTER TABLE `database-name`.`incoming_stock` ADD `shopId` char(36) NOT NULL;
ALTER TABLE `database-name`.`refresh_token` DROP COLUMN `token`;
ALTER TABLE `database-name`.`refresh_token` ADD `token` char(36) NOT NULL;
ALTER TABLE `database-name`.`order_product` ADD CONSTRAINT `FK_073c85ed133e05241040bd70f02` FOREIGN KEY (`productId`) REFERENCES `database-name`.`product`(`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE `database-name`.`stored_product` ADD CONSTRAINT `FK_a2e4f85748cc0aa9265ab5ad2d9` FOREIGN KEY (`productId`) REFERENCES `database-name`.`product`(`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE `database-name`.`product` ADD CONSTRAINT `FK_1c4b1934c3e8c5b69b3d3d311d6` FOREIGN KEY (`shopId`) REFERENCES `database-name`.`shop`(`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE `database-name`.`order_packet_content` ADD CONSTRAINT `FK_e1ced39d64c6dea53d576f3741b` FOREIGN KEY (`productId`) REFERENCES `database-name`.`product`(`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE `database-name`.`order` ADD CONSTRAINT `FK_318cc4bdeb61d336e3a01f4b767` FOREIGN KEY (`shopId`) REFERENCES `database-name`.`shop`(`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE `database-name`.`incoming_stock_line_item` ADD CONSTRAINT `FK_2343e86ad3ca49457b1816c9ba8` FOREIGN KEY (`incomingStockId`) REFERENCES `database-name`.`incoming_stock`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE `database-name`.`incoming_stock_line_item` ADD CONSTRAINT `FK_cb774b7c07631841941dc143d86` FOREIGN KEY (`productId`) REFERENCES `database-name`.`product`(`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE `database-name`.`incoming_stock` ADD CONSTRAINT `FK_5caa8827445711bec7913eb1760` FOREIGN KEY (`shopId`) REFERENCES `database-name`.`shop`(`id`) ON DELETE NO ACTION ON UPDATE NO ACTION; |
Maybe it has something to do with this: #8173 |
@Kage0x3B Ok, based on that link, I definitely don't have a custom naming strategy. This is kind of weird 😛 |
Something interesting is that there are await queryRunner.query(
`ALTER TABLE \`database_name\`.\`work_role\` CHANGE \`yearsOfExperience\` \`yearsOfExperience\` int NULL`
); Why would it call it a change if it doesn't change anything? |
Can you check that you use TYPEROM_TYPE = mariadb (instead mysql)? I had similar case, where the NULL wasn't correctly detected. You can check #6030 (comment) for my diag. |
@fanch317 Oh Dang! I never would have thought of that! |
I have to check to see if that solves the problem. |
@fanch317 Oh man, I really thought you had found the issue, but after setting the type to |
I have the same problem. My understanding: |
@sebdec YES! In the DB, the id field is I wonder how this can be fixed??? |
Looks like this is duplicate of #8002 |
Fixed by #8343 |
For real!??? This will fix my problem!? 😲😲😲😁😁😁 |
changing typeorm type to mariadb do fix my problem, thanks |
Issue Description
With no changes to any entities, typeorm is generating migration query statements when running
migration:generate
.Expected Behavior
With no changes to an entity, typeorm should not be generating any migration query statements when running
migration:generate
.Actual Behavior
With no changes to any entities, typeorm is generating migration query statements when running
migration:generate
.Steps to Reproduce
schema:sync
migration:generate
My Environment
Additional Context
Relevant Database Driver(s)
MySQL driver connecting to MariaDB in AWS RDS.
aurora-data-api
aurora-data-api-pg
better-sqlite3
cockroachdb
cordova
expo
mongodb
mysql
nativescript
oracle
postgres
react-native
sap
sqlite
sqlite-abstract
sqljs
sqlserver
Are you willing to resolve this issue by submitting a Pull Request?
The text was updated successfully, but these errors were encountered: