Error creating new content types. Please make sure contenttypes is migrated before trying to migrate apps individually

后端 未结 6 1565
星月不相逢
星月不相逢 2020-12-09 07:40

I am trying to migrate from Django 1.6 to Django 1.8. I was using South for managing migrations in Django 1.6. I have suc

相关标签:
6条回答
  • 2020-12-09 08:16

    To add to comment by @int_ua Add this as a dependency to the migration that is failing:

    dependencies = [
        ('contenttypes', '0002_remove_content_type_name'),
    ]
    

    Then run migration again.

    0 讨论(0)
  • 2020-12-09 08:17

    I think this has something to do with "The removal of ContentType.name", according to this. But somehow it doesnt work.

    By manually removing the column name from 'django_content_type' table. Eg.

    'ALTER TABLE django_content_type DROP COLUMN name'

    I was able to apply the migrations. Maybe this can get you a little bit further at least.

    0 讨论(0)
  • 2020-12-09 08:22

    May look strange but I fixed this by upgrading to Django version 1.8. Initially i was using ver 1.7

    0 讨论(0)
  • 2020-12-09 08:23

    In my case, what i did to fix this was updating to a newer version of django. If you work with mac just do:

    1. pip install django --upgrade
    2. python manage.py makemigrations
    3. python manage.py migrate
    0 讨论(0)
  • 2020-12-09 08:31

    I had to merge two systems in Django 1.9.1 and I just could not get past this error:

     "Error creating new content types. Please make sure contenttypes "
    

    Extensive googling and stackoverflowing was fruitless. Finally, I added the the debug line to

    ~/.virtualenvs/(venv_name)/lib/python2.7/site-packages/django/contrib/contenttypes/models.py

     except (OperationalError, ProgrammingError, IntegrityError):
            # It's possible to migrate a single app before contenttypes,
            # as it's not a required initial dependency (it's contrib!)
            # Have a nice error for this.
            print "\n\nError for Content type model "+opts.model_name+"\n\n"
            raise RuntimeError(
                "Error creating new content types. Please make sure contenttypes "
                "is migrated before trying to migrate apps individually."
            )
    

    This told me the model names that were causing the error and ultimately led to the fix.

    I am using Postgres and the sequence numbers for tables django_content_type and auth_permission were not pointing to the end of the table, causing inserts to fail.

    These 2 lines fixed that (based on this SO post)

    SELECT pg_catalog.setval(pg_get_serial_sequence('django_content_type', 'id'), (SELECT MAX(id) FROM django_content_type)+1);
    SELECT pg_catalog.setval(pg_get_serial_sequence('auth_permission', 'id'), (SELECT MAX(id) FROM auth_permission)+1);
    
    0 讨论(0)
  • 2020-12-09 08:36

    Try to migrate auth application first, and then others:

    manage.py migrate auth
    manage.py migrate <app_name>
    
    0 讨论(0)
提交回复
热议问题