创建新内容类型时出错.在尝试单独迁移应用之前,请确保迁移了contenttypes

Shu*_*ham 35 migration django django-south django-1.8

我正试图从中迁移Django 1.6Django 1.8.我South用于管理migrationsDjango 1.6.我已经成功创建了新的迁移文件python manage.py makemigrations.在运行时python manage.py migrate --fake-initial,我收到此错误

 Traceback (most recent call last):
  File "manage.py", line 39, in <module>
    execute_from_command_line(sys.argv)
  File "/home/jonty/.virtualenvs/squadrun/local/lib/python2.7/site-    packages/django/core/management/__init__.py", line 338, in   execute_from_command_line
    utility.execute()
  File "/home/jonty/.virtualenvs/squadrun/local/lib/python2.7/site-  packages/django/core/management/__init__.py", line 330, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/jonty/.virtualenvs/squadrun/local/lib/python2.7/site-packages/django/core/management/base.py", line 390, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/home/jonty/.virtualenvs/squadrun/local/lib/python2.7/site-packages/django/core/management/base.py", line 441, in execute
    output = self.handle(*args, **options)
  File "/home/jonty/.virtualenvs/squadrun/local/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 225, in handle
    emit_post_migrate_signal(created_models, self.verbosity, self.interactive, connection.alias)
  File "/home/jonty/.virtualenvs/squadrun/local/lib/python2.7/site-packages/django/core/management/sql.py", line 280, in emit_post_migrate_signal
using=db)
  File "/home/jonty/.virtualenvs/squadrun/local/lib/python2.7/site-packages/django/dispatch/dispatcher.py", line 201, in send
response = receiver(signal=self, sender=sender, **named)
  File "/home/jonty/.virtualenvs/squadrun/local/lib/python2.7/site-packages/django/contrib/auth/management/__init__.py", line 82, in create_permissions
    ctype = ContentType.objects.db_manager(using).get_for_model(klass)
  File "/home/jonty/.virtualenvs/squadrun/local/lib/python2.7/site-packages/django/contrib/contenttypes/models.py", line 78, in get_for_model
    "Error creating new content types. Please make sure contenttypes "
Run Code Online (Sandbox Code Playgroud)

其中一个迁移文件0001_initial.py说:

dependencies = [
    ('auth', '0006_require_contenttypes_0002'),
    ('clients', '0002_auto_20150428_1551'),
    ('players', '0001_initial'),
]
Run Code Online (Sandbox Code Playgroud)

我猜这特别是问题.可能是解决这个问题的方法.任何帮助将不胜感激.

Gel*_*der 44

我觉得这事做"的拆除ContentType.name",根据这个.但不知怎的,它不起作用.

通过name从'django_content_type'表中手动删除列.例如.

'ALTER TABLE django_content_type DROP COLUMN name'

我能够应用迁移.也许至少可以让你进一步发展.


Moj*_*efi 17

尝试先迁移auth应用程序,然后再迁移其他应用程序:

manage.py migrate auth
manage.py migrate <app_name>
Run Code Online (Sandbox Code Playgroud)


小智 7

在我的情况下,我做的是解决这个问题,即更新到更新版本的django.如果你使用mac只是做:

  1. pip install django --upgrade
  2. python manage.py makemigrations
  3. python manage.py migrate