#24311: Foreign key constraint error when syncing unmigrated models that relate to migrated models ---------------------------------+-------------------------------------- Reporter: collinanderson | Owner: nobody Type: Bug | Status: closed Component: Migrations | Version: 1.8alpha1 Severity: Release blocker | Resolution: wontfix Keywords: | Triage Stage: Unreviewed Has patch: 0 | Needs documentation: 0 Needs tests: 0 | Patch needs improvement: 0 Easy pickings: 0 | UI/UX: 0 ---------------------------------+-------------------------------------- Changes (by MarkusH):
* status: new => closed * resolution: => wontfix Comment: On 1.8 this is the SQL run by the syncdb code (last query fails): {{{#!sql CREATE TABLE `app_myuser` (`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY, `password` varchar(128) NOT NULL, `last_login` datetime(6) NULL, `is_superuser` bool NOT NULL, `username` varchar(30) NOT NULL UNIQUE, `first_name` varchar(30) NOT NULL, `last_name` varchar(30) NOT NULL, `email` varchar(254) NOT NULL, `is_staff` bool NOT NULL, `is_active` bool NOT NULL, `date_joined` datetime(6) NOT NULL) None SELECT engine FROM information_schema.tables WHERE table_name = %s ['app_myuser'] CREATE TABLE `app_myuser_groups` (`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY, `myuser_id` integer NOT NULL, `group_id` integer NOT NULL, UNIQUE (`myuser_id`, `group_id`)) None SELECT engine FROM information_schema.tables WHERE table_name = %s ['app_myuser_groups'] CREATE TABLE `app_myuser_user_permissions` (`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY, `myuser_id` integer NOT NULL, `permission_id` integer NOT NULL, UNIQUE (`myuser_id`, `permission_id`)) None SELECT engine FROM information_schema.tables WHERE table_name = %s ['app_myuser_user_permissions'] Running deferred SQL... ALTER TABLE `app_myuser_groups` ADD CONSTRAINT `app_myuser_groups_myuser_id_2b41e8461df0328_fk_app_myuser_id` FOREIGN KEY (`myuser_id`) REFERENCES `app_myuser` (`id`) None ALTER TABLE `app_myuser_groups` ADD CONSTRAINT `app_myuser_groups_group_id_7a5f5bcafc6997d9_fk_auth_group_id` FOREIGN KEY (`group_id`) REFERENCES `au }}} On 1.7 the respective SQL is the following (no failures): {{{#!sql CREATE TABLE `app_myuser_groups` (`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY, `myuser_id` integer NOT NULL, `group_id` integer NOT NULL, UNIQUE (`myuser_id`, `group_id`)); None CREATE TABLE `app_myuser_user_permissions` (`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY, `myuser_id` integer NOT NULL, `permission_id` integer NOT NULL, UNIQUE (`myuser_id`, `permission_id`)); None CREATE TABLE `app_myuser` (`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY, `password` varchar(128) NOT NULL, `last_login` datetime NOT NULL, `is_superuser` bool NOT NULL, `username` varchar(30) NOT NULL UNIQUE, `first_name` varchar(30) NOT NULL, `last_name` varchar(30) NOT NULL, `email` varchar(75) NOT NULL, `is_staff` bool NOT NULL, `is_active` bool NOT NULL, `date_joined` datetime NOT NULL); None ALTER TABLE `app_myuser_groups` ADD CONSTRAINT `myuser_id_refs_id_08272aba` FOREIGN KEY (`myuser_id`) REFERENCES `app_myuser` (`id`); None ALTER TABLE `app_myuser_user_permissions` ADD CONSTRAINT `myuser_id_refs_id_becb7d62` FOREIGN KEY (`myuser_id`) REFERENCES `app_myuser` (`id`); None CREATE INDEX `app_myuser_groups_f1d9e869` ON `app_myuser_groups` (`myuser_id`); None CREATE INDEX `app_myuser_groups_5f412f9a` ON `app_myuser_groups` (`group_id`); None CREATE INDEX `app_myuser_user_permissions_f1d9e869` ON `app_myuser_user_permissions` (`myuser_id`); None CREATE INDEX `app_myuser_user_permissions_83d7f98b` ON `app_myuser_user_permissions` (`permission_id`); None }}} However, looking at the constraints for `app_myuser_groups` this reveals a missing constraint to `auth_group`. {{{#!sql CREATE TABLE `app_myuser_groups` ( `id` int(11) NOT NULL AUTO_INCREMENT, `myuser_id` int(11) NOT NULL, `group_id` int(11) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `myuser_id` (`myuser_id`,`group_id`), KEY `app_myuser_groups_f1d9e869` (`myuser_id`), KEY `app_myuser_groups_5f412f9a` (`group_id`), CONSTRAINT `myuser_id_refs_id_08272aba` FOREIGN KEY (`myuser_id`) REFERENCES `app_myuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 }}} In other words, 1.7 seems to silently ignore to add constraints to missing tables. See the docs as well: https://docs.djangoproject.com/en/1.7/topics/migrations/#unmigrated- dependencies -- Ticket URL: <https://code.djangoproject.com/ticket/24311#comment:4> Django <https://code.djangoproject.com/> The Web framework for perfectionists with deadlines. -- You received this message because you are subscribed to the Google Groups "Django updates" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-updates+unsubscr...@googlegroups.com. To post to this group, send email to django-updates@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/072.7c3905bd18c1c16d6cdff9c953398a45%40djangoproject.com. For more options, visit https://groups.google.com/d/optout.