Django 1.9 Проблемы миграции

Я пытаюсь перевести свое приложение 1.8 на Django 1.9. Простое создание миграции для старых баз данных — это нормально, но когда я пытаюсь создать новую базу данных с помощью миграции, я получаю:

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

Я протестировал это изрядно, и я могу заставить его собраться заново, если я: удалю свой сайт из URL-адресов, перенесу, добавлю его обратно и снова перенесу... но это супер дерьмо, а не чистая сборка, которую я ищу за. Кажется, что Django/core/management/base.py строка 398 -> self.check() вызывается до того, как происходит миграция, а отсутствие базы данных выдает ошибку и завершает работу до настройки базы данных (уловка 22). Я проверил это, закомментировав это, и это также позволит создать базу данных.

У кого-нибудь есть какие-либо рекомендации о том, какой хороший способ исправить это или какая основная проблема может быть в моем приложении?

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

(test) C:\website\test\rpi_csdt_community>python manage.py migrate
C:\website\test\rpi_csdt_community\collected_static/
C:\website\test\rpi_csdt_community\rpi_csdt_community\urls.py:27: RemovedInDjang
o110Warning: Support for string view arguments to url() is deprecated and will b
e removed in Django 1.10 (got rpi_csdt_community.views.home). Pass the callable
instead.
  url(r'^$', 'rpi_csdt_community.views.home', {}, 'home'),

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "C:\website\test\lib\site-packages\django\core\management\__init__.py", l
ine 353, in execute_from_command_line
    utility.execute()
  File "C:\website\test\lib\site-packages\django\core\management\__init__.py", l
ine 345, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "C:\website\test\lib\site-packages\django\core\management\base.py", line
348, in run_from_argv
    self.execute(*args, **cmd_options)
  File "C:\website\test\lib\site-packages\django\core\management\base.py", line
398, in execute
    self.check()
  File "C:\website\test\lib\site-packages\django\core\management\base.py", line
426, in check
    include_deployment_checks=include_deployment_checks,
  File "C:\website\test\lib\site-packages\django\core\checks\registry.py", line
75, in run_checks
    new_errors = check(app_configs=app_configs)
  File "C:\website\test\lib\site-packages\django\core\checks\urls.py", line 13,
in check_url_config
    return check_resolver(resolver)
  File "C:\website\test\lib\site-packages\django\core\checks\urls.py", line 23,
in check_resolver
    for pattern in resolver.url_patterns:
  File "C:\website\test\lib\site-packages\django\utils\functional.py", line 33,
in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "C:\website\test\lib\site-packages\django\core\urlresolvers.py", line 417
, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "C:\website\test\lib\site-packages\django\utils\functional.py", line 33,
in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "C:\website\test\lib\site-packages\django\core\urlresolvers.py", line 410
, in urlconf_module
    return import_module(self.urlconf_name)
  File "c:\python27\Lib\importlib\__init__.py", line 37, in import_module
    __import__(name)
  File "C:\website\test\rpi_csdt_community\rpi_csdt_community\urls.py", line 29,
 in <module>
    url(r'', include('project_share.urls')),
  File "C:\website\test\lib\site-packages\django\conf\urls\__init__.py", line 52
, in include
    urlconf_module = import_module(urlconf_module)
  File "c:\python27\Lib\importlib\__init__.py", line 37, in import_module
    __import__(name)
  File "C:\website\test\rpi_csdt_community\project_share\urls.py", line 4, in <m
odule>
    from project_share.views import ProjectList, ProjectTagList, ApplicationList
, DemoList
  File "C:\website\test\rpi_csdt_community\project_share\views.py", line 54, in
<module>
    class ProjectList(SearchableListMixin, SortableListMixin, ListView):
  File "C:\website\test\rpi_csdt_community\project_share\views.py", line 59, in
ProjectList
    queryset = Project.approved_projects().all()
  File "C:\website\test\rpi_csdt_community\project_share\models.py", line 150, i
n approved_projects
    return Project.objects.filter(approved=True)
  File "C:\website\test\lib\site-packages\django\db\models\manager.py", line 122
, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "C:\website\test\lib\site-packages\secretballot\__init__.py", line 58, in
 get_queryset
    content_type = ContentType.objects.get_for_model(self.model).id
  File "C:\website\test\lib\site-packages\django\contrib\contenttypes\models.py"
, line 80, in get_for_model
    "Error creating new content types. Please make sure contenttypes "
RuntimeError: Error creating new content types. Please make sure contenttypes is
 migrated before trying to migrate apps individually.

person SillyInventor    schedule 07.04.2016    source источник
comment
Не могли бы вы опубликовать всю трассировку стека? Это пахнет проблемой инициализации в вашем приложении.   -  person Marco A.    schedule 08.04.2016
comment
Это не дубликат этого вопроса. Таблица contenttypes еще не создана. Ни причина, ни решение не одинаковы.   -  person SillyInventor    schedule 08.04.2016


Ответы (1)


Исправлено заменой:

queryset = Project.approved_projects().all()

на мой взгляд с:

def get_queryset(self):
    return Project.approved_projects().all()

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

person SillyInventor    schedule 13.04.2016