Opened 10 years ago
Closed 10 years ago
#23519 closed Bug (invalid)
Invalid ContentType after running "migrate" command
Reported by: | Manuel Kaufmann | Owned by: | nobody |
---|---|---|---|
Component: | Migrations | Version: | 1.7 |
Severity: | Normal | Keywords: | |
Cc: | Manuel Kaufmann | Triage Stage: | Unreviewed |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
Hi folks!
First of all, I'm not sure if this is a Django bug o something in my code (or 3rd app code). I tried debugging it by myself but I didn't get to the right port. So, I'm asking here.
For some reason, after running "migrate" in a fresh db everything works fine but the second time it's ran (immediately after the first one has finished and the subsequents) I got this message:
$ ./manage.py migrate Operations to perform: Synchronize unmigrated apps: facebook_comments, stronghold, dbtemplates, django_comments, django_proofread, allauth, guardian, autocomplete_light, debug_toolbar, dbsettings, chap, django_extensions, impersonate, django_wysiwyg, disqus, notifier, crispy_forms Apply all migrations: core, account, reversion, league, admin, challenge, sessions, sites, auth, sponsor, notifications, contenttypes, flatpages, team, organization, easy_thumbnails, inspiration Synchronizing apps without migrations: Creating tables... Installing custom SQL... Installing indexes... Running migrations: No migrations to apply. The following content types are stale and need to be deleted: core | Any objects related to these content types by a foreign key will also be deleted. Are you sure you want to delete these content types? If you're unsure, answer 'no'. Type 'yes' to continue, or 'no' to cancel: yes $
These are the differences in the db dump files (after first "migrate" command compared with the second run): http://linkode.org/9OjIVmwW3YDDM4pTabHWX1
--- chap-migration-test.sql 2014-09-18 09:31:58.332672674 -0300 +++ chap-migration-test-after-2nd-migrate.sql 2014-09-18 09:32:17.148672191 -0300 @@ -2756,7 +2756,6 @@ 49 Can add registration invitation 16 add_registrationinvitation 50 Can change registration invitation 16 change_registrationinvitation 51 Can delete registration invitation 16 delete_registrationinvitation -52 Can edit core non-model settings 17 can_edit__settings 53 Can add user 18 add_user 54 Can change user 18 change_user 55 Can delete user 18 delete_user @@ -2909,6 +2908,7 @@ 202 Can add group object permission 67 add_groupobjectpermission 203 Can change group object permission 67 change_groupobjectpermission 204 Can delete group object permission 67 delete_groupobjectpermission +205 Can edit core non-model settings 68 can_edit__settings \. @@ -2916,7 +2916,7 @@ -- Name: auth_permission_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres -- -SELECT pg_catalog.setval('auth_permission_id_seq', 204, true); +SELECT pg_catalog.setval('auth_permission_id_seq', 205, true); -- @@ -3279,7 +3279,6 @@ 14 report core report 15 rule core rule 16 registration invitation core registrationinvitation -17 core core 18 user challenge user 19 goal challenge goal 20 user goal challenge usergoal @@ -3330,6 +3329,7 @@ 65 notification notifier notification 66 user object permission guardian userobjectpermission 67 group object permission guardian groupobjectpermission +68 core core \. @@ -3337,7 +3337,7 @@ -- Name: django_content_type_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres -- -SELECT pg_catalog.setval('django_content_type_id_seq', 67, true); +SELECT pg_catalog.setval('django_content_type_id_seq', 68, true); --
and another diff between the second and the third time: http://linkode.org/rX21iFzHICntF4ergjEcW5
--- chap-migration-test-after-2nd-migrate.sql 2014-09-18 09:32:17.148672191 -0300 +++ chap-migration-test-after-3rd-migrate.sql 2014-09-18 09:37:38.948663938 -0300 @@ -2908,7 +2908,7 @@ 202 Can add group object permission 67 add_groupobjectpermission 203 Can change group object permission 67 change_groupobjectpermission 204 Can delete group object permission 67 delete_groupobjectpermission -205 Can edit core non-model settings 68 can_edit__settings +206 Can edit core non-model settings 69 can_edit__settings \. @@ -2916,7 +2916,7 @@ -- Name: auth_permission_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres -- -SELECT pg_catalog.setval('auth_permission_id_seq', 205, true); +SELECT pg_catalog.setval('auth_permission_id_seq', 206, true); -- @@ -3329,7 +3329,7 @@ 65 notification notifier notification 66 user object permission guardian userobjectpermission 67 group object permission guardian groupobjectpermission -68 core core +69 core core \. @@ -3337,7 +3337,7 @@ -- Name: django_content_type_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres -- -SELECT pg_catalog.setval('django_content_type_id_seq', 68, true); +SELECT pg_catalog.setval('django_content_type_id_seq', 69, true); --
I found that ContentType is marked to be removed for some reason here: https://github.com/django/django/blob/stable/1.7.x/django/contrib/contenttypes/management.py#L41 . Although, I couldn't find the real reason. In fact, I couldn't find why the model
attribute for that ContentType is ''
.
Another thing that I noticed is that I remove one of the 3rd apps I'm using (django-dbsettings==0.7) from INSTALLED_APPS
and run "migrate" again, I get that message but after answering yes
Django doesn't ask me again about that.
I tried creating a new project from scratch and installing django-dbsettings, create some models, run "makemigrations", "migrate", delete some models, "makemigrations", "migrate" and so... but I didn't get that error in this new project.
I'm confused and I couldn't get with the solution. I'm not sure if this is something related with django itself or if it's just my code.
Change History (3)
comment:1 by , 10 years ago
comment:2 by , 10 years ago
Well, with the help of cramm (from Python Argentina) I found there is something weird at django-dbsettings here:
Not sure how to solve it yet, but at least, I can say it doesn't seem to be a Django Bug :)
Thanks and sorry!
comment:3 by , 10 years ago
Resolution: | → invalid |
---|---|
Status: | new → closed |
A new ContentType object is created when I run "migrate" command. I connected the signal
post_save
and checked thesender
and it's aContentType
withinstance.model
equal to''
.How can I detect where is this ContentType created?