2015-05-25 10 views
6

Rozpocząłem nowy projekt Django 1.8 i zdałem sobie sprawę, że coś przeoczyłem (wykonałem początkowe migracje). Usunąłem bazę danych (postgreSQL) i usunąłem foldery migration ze wszystkich moich aplikacji, aby zacząć od zera.Django: Dostaję [relację "auth_group" nie istnieje] error after syncdb

Teraz, kiedy jestem syncdb "otrzymuję ten błąd:

django.db.utils.ProgrammingError: relation "auth_group" does not exist

i kiedy makemigrations uzyskać to:

No changes detected

Co robię źle?

Odpowiedz

10

Prawdopodobnie powinieneś spróbować utworzyć moduły migrations (foldery o nazwie migrations z pustym plikiem o nazwie __init__.py w każdym katalogu) dla swoich aplikacji. A następnie ponownie uruchom manage.py makemigrations.

+2

dzięki! zadziałało! Nigdy nie miałem problemu z używaniem południa w poprzednich wersjach Django. Południe odtworzyło foldery migracji. – xpanta

+0

Pracował również dla mnie. Ale czy to ma być błąd, czy w jaki sposób powinny nadejść przyszłe migracje? – Rexford

+0

Myślę, że dzieje się tak dlatego, że folder nie jest pakietem python, chyba że ma plik __init__.py, więc został zszargany podczas jego synchronizacji. Jeśli spojrzysz na wszystkie foldery projektu, zobaczysz puste pliki init w każdym z nich. –

-1

jest django.contrib.auth w INSTALLED_APPS?

+0

tak, także 'django.contrib.admin' jest tam też (nie wiem, czy to coś znaczy). – xpanta

+0

@fiacre, jeśli masz pytania/sugestie i nie masz pewności, proszę wspomnieć o tym w sekcji komentarza pytania (zgodnie z wytycznymi SO) [Przepraszam za spóźnienie] –

0

Powyższy błąd występuje, gdy wśród zainstalowanych aplikacji znajduje się django.contrib.admin. Uruchom te polecenia w odpowiedniej kolejności.

** 

./manage.py makemigrations 
./manage.py migrate auth 
./manage.py migrate** 

To zadziałało idealnie.

+0

Nie działa dla mnie. Dodanie modułów migracyjnych zgodnie z sugestią zawartą w innej odpowiedzi. – musicformellons

0

Wykonanie ./manage.py migrate auth po raz pierwszy mi nie pasowało, a każde polecenie ./manage.py rzuciło ten błąd. Mój problem polegał na tym, że robiłem coś z menedżerem Group w zakresie modułu.

Jeśli masz kod takiego w zakresie modułu:

customers_group = Group.objects.get(name='customers') 

przenieść go wewnątrz funkcji, która jest wywoływana w czasie wykonywania zamiast.

def xyz(): 
    ... 
    customers_group = Group.objects.get(name='customers') 
3

Problem dotyczy no changes detected. Wykonaj te polecenia, używając nazwy swojej aplikacji. Chyba go nie dodać (podobnie jak omyłkowo ja):

  1. python manage.py makemigrations myappname
  2. python manage.py migrate myappname
0

To może być:

  • jednym z pip zależności od require.txt używały South

    miały ten błąd, gdy uruchamianie testów przeprowadzających migrację w Django 1.8. Znaleziono bibliotekę z problemem, uruchamiając testy w trybie pełnym. Rozważ uaktualnienie biblioteki do nowszej wersji.

manage.py test -v 3

  • jednym folderze/migracje może nadal ma stare pliki South migracje. Może to być spowodowane tym, że inni wciąż dodają migracje podczas próby uaktualnienia Django. Wykonaj następujące czynności, aby upewnić się, że oczekiwane pliki migracji są obecne w każdej aplikacji.

manage.py showmigrations

Powiązane problemy