Bug #70315 "Foreign Key Options -> Skip in SQL generation" does not work
Submitted: 12 Sep 2013 13:41 Modified: 16 Oct 2013 13:59
Reporter: Rasmus Schultz Email Updates:
Status: No Feedback Impact on me:
None 
Category:MySQL Workbench Severity:S3 (Non-critical)
Version:6.0.6.11184 OS:Windows (Windows 8)
Assigned to: CPU Architecture:Any

[12 Sep 2013 13:41] Rasmus Schultz
Description:
As far as my understanding, ticking the "Skip in SQL generation" checkbox on the "Foreign Key Options" panel should, as far as my understanding, treat that foreign key as though it didn't exist?

Unfortunately this doesn't quite seem to work - when the foreign key has already been applied to the schema, "Synchronize Model" does not remove a key that should be skipped.

If the idea is that you can keep a key on the diagram, but avoid generating and enforcing the key constraint in the schema, it does not seem to work as intended.

How to repeat:
1. Use forward migration or model synchronization to deploy a foreign key.
2. Tick the "skip in SQL generation" checkbox
3. Repeat model synchronization

The foreign key does not get removed.
[12 Sep 2013 14:19] MySQL Verification Team
Thank you for the bug report. I couldn't repeat with version 6.0.7 and Sakila model please try it. Thanks.
[12 Sep 2013 20:38] Rasmus Schultz
sample project demonstrating issue

Attachment: test.mwb (application/octet-stream, text), 6.87 KiB.

[12 Sep 2013 20:41] Rasmus Schultz
Try the project I attached.

Run a forward migration to create the schema, then tick the "skip in SQL generation" checkbox on the "Foreign Keys" tab for "fk_users_companies".

Then synchronize the model.

On my system (Windows 8) with latest release (6.0.6.11184) the "model and database differences" screen shows there are no changes.
[16 Sep 2013 13:59] MySQL Verification Team
Thank you for the feedback. Please try version 6.0.7 I got the below difference when I synchronize model:

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';

ALTER TABLE `test_db`.`users` 
ADD CONSTRAINT `fk_users_companies`
  FOREIGN KEY (`company_id`)
  REFERENCES `test_db`.`companies` (`id`)
  ON DELETE NO ACTION
  ON UPDATE NO ACTION;

SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
[17 Oct 2013 1:00] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".