2015-09-10 1 views
4

Я использую django 1.8.2, и вдруг я не могу использовать migrate.django 1.8.2: Ошибка при создании новых типов контента

Я много раз искал и нашел this post, предлагая удалить name из django_content_type стол. но эта колонка не находится в таблице django_content_type.

вот мой django_content_type стол:

id |  app_label  |  model  
----+-------------------+---------------- 
    1 | admin    | logentry 
    2 | auth    | permission 
    3 | auth    | group 
    4 | auth    | user 
    5 | contenttypes  | contenttype 
    6 | sessions   | session 
    7 | centuryPhotograph | temporaryuser 
    8 | centuryPhotograph | userinfo 
    9 | centuryPhotograph | log 
10 | centuryPhotograph | uploadedimages 
(10 rows) 

здесь полная ошибка:

System check identified some issues: 

WARNINGS: 
centuryPhotograph.Galleries.closed: (1_6.W002) BooleanField does not have a default value. 
    HINT: Django 1.6 changed the default value of BooleanField from False to None. See https://docs.djangoproject.com/en/1.6/ref/models/fields/#booleanfield for more information. 
centuryPhotograph.Galleries.open_gallery: (1_6.W002) BooleanField does not have a default value. 
    HINT: Django 1.6 changed the default value of BooleanField from False to None. See https://docs.djangoproject.com/en/1.6/ref/models/fields/#booleanfield for more information. 
Operations to perform: 
    Apply all migrations: admin, centuryPhotograph, contenttypes, auth, sessions 
Running migrations: 
    No migrations to apply. 
Traceback (most recent call last): 
    File "./manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 385, in execute_from_command_line 
    utility.execute() 
    File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 377, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 288, in run_from_argv 
    self.execute(*args, **options.__dict__) 
    File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 338, in execute 
    output = self.handle(*args, **options) 
    File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/migrate.py", line 165, in handle 
    emit_post_migrate_signal(created_models, self.verbosity, self.interactive, connection.alias) 
    File "/usr/local/lib/python2.7/dist-packages/django/core/management/sql.py", line 268, in emit_post_migrate_signal 
    using=db) 
    File "/usr/local/lib/python2.7/dist-packages/django/dispatch/dispatcher.py", line 198, in send 
    response = receiver(signal=self, sender=sender, **named) 
    File "/usr/local/lib/python2.7/dist-packages/django/contrib/auth/management/__init__.py", line 83, in create_permissions 
    ctype = ContentType.objects.db_manager(using).get_for_model(klass) 
    File "/usr/local/lib/python2.7/dist-packages/django/contrib/contenttypes/models.py", line 58, in get_for_model 
    " is migrated before trying to migrate apps individually." 
RuntimeError: Error creating new content types. Please make sure contenttypes is migrated before trying to migrate apps individually. 

вот мой INSTALLED_APPS:

INSTALLED_APPS = (
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'centuryPhotograph', 
) 

я удалил все миграции один раз и пытались мигрировать, но проблема все еще существует.

+4

Попробуйте выполнить миграцию только приложения contenttypes с помощью. ./manage.py migrate contenttypes. – Alasdair

+2

спасибо. что-то (я не знаю, что!). ошибка исчезла. я могу делать «makemigrations» и «мигрировать» без каких-либо ошибок. но миграция не применяется :( –

+1

Я не уверен, что вы подразумеваете под «не будет применяться». Каковы содержимое миграций, которые «не будут применяться». Каков результат отображения событий ./manage.py '? Соответствует ли это содержимому db, когда вы делаете' select * из django_migrations; ' – Alasdair

ответ

2

Я на Django 1.9 и столкнулся с такой же problem.The решение размещены в комментариях выше, не работает для меня, так что разместить то, что работает для меня:

  1. Удалить все миграции папки из всех приложений.
  2. Run python manage.py migrate
  3. Run python manage.py makemigrations
  4. Run python manage.py migrate

Ключевым моментом здесь является запуск migrate раз перед тем запустить makemigrations.

Это будет работать миграции на все модели по умолчанию в Django для моделей, таких как: contenttypes, admin, sites, auth, sessions т.д.

Как только это будет сделано, вы запускаете makemigrations, что делает миграцию для пользовательских определенных моделей для вашего проекта.

И наконец, при повторном запуске мигрирует все ваши пользовательские модели и не жалуется на отсутствие миграции на contenttype.

Смежные вопросы