1. After comparison, the UI starts with the window scrolled all the way to the bottom
2. Collapsing a folder sends the window scroll all the way to the bottom
3. Foreign keys are corrupted on the target DB (ex: Source table contains 'Test_ibfk_1', target DB contains an entry for "<3-4 garbage chars>t_ibfk_1".) It is always the first three bytes that are corrupted, however it appears that sometimes there is an extra garbage byte prepended. (Doesn't seem to effect the SQL output).
4. If a single column/index/foreign key is modified in a table, every column/index/foreign key is selected unnecessarily. (I know this is a legacy issue, but what's the point of having checkboxes if you can't select one item out of many?)
SQL:
1. Multiple 'USE' commands are generated. Why not simply have a single USE at the top of the script?
2. As noted in the Bugs forum for 5.0.2: Character set is not compared for existing tables, or copied for new tables. This is a serious issue because character set mismatches will prevent foreign keys from being created (much to my dismay and loss of 2 hours of yelling "Why in the hell won't you work?!")
3. When copying SQL for a table with a foreign key bad SQL is generated: (Note the alter with no changes, and no semi-colon)
CODE
/* Alter table in First database */
alter table `testDB`.`testTable`
/* Alter ForeignKey(s) in First database */
USE `testDB`;
ALTER TABLE testTable
ADD CONSTRAINT `testTable_ibfk_1`
FOREIGN KEY (`testColumn`) REFERENCES `testTable2` (`testColumn`);
alter table `testDB`.`testTable`
/* Alter ForeignKey(s) in First database */
USE `testDB`;
ALTER TABLE testTable
ADD CONSTRAINT `testTable_ibfk_1`
FOREIGN KEY (`testColumn`) REFERENCES `testTable2` (`testColumn`);
4. Foreign keys are created in separate alter blocks than the rest of the DB changes. (I can see this being intentional, but it's unnecessary as long as the SQL is sorted in a fashion to ensure that FKs are created after the colums and indexes exist)