2016-04-07 16 views
1

Ich versuche, meine 1.8 App zu Django 1.9 zu überführen. Einfach zu schaffen ist die Migrationen für alte Datenbanken in Ordnung, aber wenn ich versuche, eine neue Datenbank mit Migrate zu erstellen, erhalte ich:Django 1.9 Migrationsprobleme

"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. 

ich dies ein gutes Stück getestet habe, und ich kann es frisch zu bauen, wenn ich: entferne meine Website von URLs, migriere, füge sie zurück und migriere erneut ... aber das ist super janky, und nicht die saubere Version, nach der ich suche. Es scheint, dass Django/core/management/base.py Zeile 398 -> self.check() aufgerufen wird, bevor die Migration auftritt, und das Fehlen einer Datenbank löst einen Fehler aus und beendet vor dem Einrichten der Datenbank (catch 22). Ich habe dies getestet, indem ich dies auskommentiert habe, und das wird es auch erlauben, die Datenbank aufzubauen.

Jeder hat irgendwelche Empfehlungen für was ein guter Weg, um das zu beheben ist oder was das zugrunde liegende Problem in meiner App sein könnte?

EDIT Der komplette Stack-Trace:

(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. 
+0

Können Sie den gesamten Stacktrace posten? Es riecht als Initialisierungsproblem in Ihrer App. –

+0

Mögliches Duplikat von [Fehler beim Erstellen neuer Inhaltstypen. Bitte stelle sicher, dass contenttypes migriert wird, bevor du versuchst, Apps einzeln zu migrieren] (http://stackoverflow.com/questions/29917442/error-creating-new-content-types-please-make-sure-contenttypes-is-migrated-befo) –

+0

Dies ist kein Duplikat dieser Frage. Die contenttypes-Tabelle wurde noch nicht erstellt. Weder die Ursache noch die Lösung sind gleich. – SillyInventor

Antwort

0

behoben durch Ersatz:

queryset = Project.approved_projects().all() 

meiner Meinung nach mit:

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

Ich denke, es versucht, das testen Ansicht noch vor dem Aufbau der Datenbank ... s dummer Fehler. Aber ich lasse das hier für den Fall, dass jemand anderes damit zu kämpfen hat.