Инструментарий Django oauth: миграция выдает ошибку типа — руководство по началу работы

Я пытаюсь следовать руководству по началу работы с набором инструментов django oauth из:

https://django-oauth-toolkit.readthedocs.io/en/latest/rest-framework/getting_started.html

Когда я запускаю migrate, я получаю эту ошибку:

Файл "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/db/backends/base/schema.py", строка 1003, в _constraint_names, если type_ не None и infodict ['тип'] != type_: KeyError: 'тип'

Любая помощь будет оценена по достоинству.

Полная трассировка стека

Operations to perform:
  Apply all migrations: admin, auth, contenttypes, oauth2_provider, sessions
Running migrations:
  Applying oauth2_provider.0004_auto_20160525_1623...Traceback (most recent call last):
  File "/Users/lr/lrapp1/manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/core/management/__init__.py", line 364, in execute_from_command_line
    utility.execute()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/core/management/__init__.py", line 356, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/core/management/base.py", line 283, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/core/management/base.py", line 330, in execute
    output = self.handle(*args, **options)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/core/management/commands/migrate.py", line 204, in handle
    fake_initial=fake_initial,
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/db/migrations/executor.py", line 115, in migrate
    state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/db/migrations/executor.py", line 145, in _migrate_all_forwards
    state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/db/migrations/executor.py", line 244, in apply_migration
    state = migration.apply(state, schema_editor)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/db/migrations/migration.py", line 129, in apply
    operation.database_forwards(self.app_label, schema_editor, old_state, project_state)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/db/migrations/operations/fields.py", line 216, in database_forwards
    schema_editor.alter_field(from_model, from_field, to_field)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/db/backends/base/schema.py", line 515, in alter_field
    old_db_params, new_db_params, strict)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/db/backends/base/schema.py", line 572, in _alter_field
    index_names = self._constraint_names(model, [old_field.column], index=True, type_=Index.suffix)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/db/backends/base/schema.py", line 1003, in _constraint_names
    if type_ is not None and infodict['type'] != type_:
KeyError: 'type'

person leferaycloud    schedule 12.11.2017    source источник
comment
Можете ли вы опубликовать полную трассировку стека? Было бы хорошо увидеть, с какой из миграций он действительно ломается.   -  person Jann    schedule 12.11.2017
comment
Пожалуйста, смотрите выше - я добавил трассировку стека   -  person leferaycloud    schedule 12.11.2017
comment
Вы используете django-tenants?   -  person temasso    schedule 13.11.2017
comment
Нет - не использовать django-tenants   -  person leferaycloud    schedule 14.11.2017
comment
@temasso, что, если я использую django-tenants и получаю именно эту ошибку? Можете ли вы уточнить, пожалуйста?   -  person webjunkie    schedule 20.11.2017
comment
Попробуйте установить самую новую - 1.4.0. версия django-tenants непосредственно из репозитория проекта. 1.4.0 нет. версия доступна на PyPI еще.   -  person temasso    schedule 20.11.2017
comment
@leferaycloud вы когда-нибудь находили решение? Столкнулся с той же проблемой...   -  person wuser92    schedule 03.01.2019
comment
Не уверен насчет ошибки, но мне помогло удаление всех файлов из папки миграции кроме _init_.py.   -  person Ram Idavalapati    schedule 02.08.2019


Ответы (1)


Кажется, эта ошибка была вызвана миграцией oauth2_provider. Вы сможете исправить это, зайдя в {your venv}/Lib/site-packages/oauth2_provider/migrations и удалив все свои файлы миграции (кроме init.py), а затем снова запустите migrate. Надеюсь, это будет полезно

person Xhino    schedule 08.12.2019