| Bug #87784 | mysqldiff dropping foreign key constraints and adding them again wrongly | ||
|---|---|---|---|
| Submitted: | 17 Sep 2017 7:40 | Modified: | 18 Sep 2017 5:57 | 
| Reporter: | LOKESH SANAPALLI | Email Updates: | |
| Status: | Verified | Impact on me: | |
| Category: | MySQL Utilities | Severity: | S2 (Serious) | 
| Version: | 1.6.5 | OS: | Ubuntu (14.04) | 
| Assigned to: | CPU Architecture: | Any | |
| Tags: | mysqldiff | ||
   [17 Sep 2017 7:40]
   LOKESH SANAPALLI        
  
 
   [18 Sep 2017 5:57]
   MySQL Verification Team        
  Hello LOKESH, Thank you for the report and feedback. Thanks, Umesh
   [5 Oct 2017 18:29]
   carlos carlos        
  Also ignore ON DELETE and ON UPDATE # ON DB1 CREATE TABLE `user` ( `id` int(10) UNSIGNED NOT NULL, `name` varchar(100) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE `document` ( `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, `userId` int(10) UNSIGNED NOT NULL, `document` varchar(100) NOT NULL, PRIMARY KEY (`id`), KEY `userId` (`userId`), CONSTRAINT `document_ibfk_1` FOREIGN KEY (`userId`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; #ON DB2 CREATE TABLE `user` ( `id` int(10) UNSIGNED NOT NULL, `name` varchar(100) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE `document` ( `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, `userId` int(10) UNSIGNED NOT NULL, `document` varchar(100) NOT NULL, PRIMARY KEY (`id`), KEY `userId` (`userId`), CONSTRAINT `document_ibfk_1` FOREIGN KEY (`userId`) REFERENCES `user` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; mysqldiff --server1=root@localhost --server2=root@localhost --difftype=sql --changes-for=server1 --show-reverse db2.document:db1.document # WARNING: Using a password on the command line interface can be insecure. # server1 on localhost: ... connected. # server2 on localhost: ... connected. # Comparing db2.document to db1.document [FAIL] # Transformation for --changes-for=server1: # ALTER TABLE `db2`.`document` DROP FOREIGN KEY document_ibfk_1, ADD CONSTRAINT document_ibfk_1 FOREIGN KEY(userId) REFERENCES `db1`.`user`(id); # # Transformation for reverse changes (--changes-for=server2): # # ALTER TABLE `db1`.`document` # DROP FOREIGN KEY document_ibfk_1, # ADD CONSTRAINT document_ibfk_1 FOREIGN KEY(userId) REFERENCES `db2`.`user`(id); #

