Django 1.8 para 1.9 migrações upgrade problema

0

Acabei de instalar o Django 1.9 e estou tentando atualizar meu aplicativo 1.8. Depois de tentar seguir as notas de lançamento com cuidado, ainda recebo o seguinte rastreio (veja abaixo).

Eu pensei que tinha algo a ver com migrações, mas esvaziar a pasta de migrações não tem efeito.

Alguém pode me apontar um link para o que estou perdendo?

Performing system checks...

System check identified no issues (0 silenced).
Unhandled exception in thread started by <function wrapper at 0x9757454>
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/django/utils/autoreload.py", line 226, in wrapper
    fn(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/runserver.py", line 124, in inner_run
    self.check_migrations()
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 448, in check_migrations
    executor = MigrationExecutor(connections[DEFAULT_DB_ALIAS])
  File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/executor.py", line 20, in __init__
    self.loader = MigrationLoader(self.connection)
  File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/loader.py", line 52, in __init__
    self.build_graph()
  File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/loader.py", line 197, in build_graph
    self.load_disk()
  File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/loader.py", line 115, in load_disk
    app_config.label,
TypeError: object.__new__() takes no parameters
    
por EMS 09.08.2016 / 18:17

1 resposta

0

Eu encontrei a solução.

Eu tinha o South instalado, que contém uma versão antiga da classe Migrate. Não foi um SETLED_APP settings.py. Mas eu tinha extensões do django instaladas. Esta versão antiga faz referência ao Sul, que trouxe a versão sul do Migrate, não a nova versão do django.

A solução foi "sudo pip uninstall south" e "sudo pip install django-extensions - upgrade".

Tudo corrigido.

O truque era usar o módulo "inspecionar" para imprimir os nomes dos arquivos das classes e das classes pai em loader.py, onde ele estava falhando:

            import inspect
            print( '****', inspect.getfile(migration_module.Migration) )
            print( '********', inspect.getfile(inspect.getmro(migration_module.Migration)[1]) )

Isso rapidamente mostrou que o loader.py estava recebendo a versão errada do Migrate.

    
por EMS 09.08.2016 / 22:25