Django - Nie ma takiej tabeli: main.auth_user__old

85

Śledziłem pierwszy samouczek dotyczący aplikacji z oficjalnej dokumentacji Django i otrzymałem ten błąd podczas próby zapisania niektórych zmian dokonanych za pośrednictwem strony administratora. Zrobiłem kilka badań na ten temat, ale możliwe rozwiązania, które udało mi się znaleźć, takie jak migracja bazy danych, po prostu nie działają. Daj mi tylko znać, jeśli chcesz zobaczyć jakąś konkretną część mojego kodu.

Oto błąd:

OperationalError at / admin / polls / question / 1 / change / no such table: main.auth_user__old Metoda żądania: POST URL żądania: http://127.0.0.1:8000/admin/polls/question/1/change/ Wersja Django: 2.1.4 Typ wyjątku: OperationalError Wartość wyjątku: brak takiej tabeli: main.auth_user__old Lokalizacja wyjątku: /Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/backends/sqlite3/base .py in execute, wiersz 296 Python Executable: / Users / gfioravante / Projects / test_app / ta_env / bin / python3 Python Wersja: 3.7.1 Python Path:
['/ Users / gfioravante / Projects / test_app / test_app', '/usr/local/Cellar/python/3.7.1/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/ usr / local /Cellar/python/3.7.1/Frameworks/Python.framework/Versions/3.7/lib/python3.7 ',' /usr/local/Cellar/python/3.7.1/Frameworks/Python.framework/Versions/3.7/ lib / python3.7 / lib-dynload ',' /Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages '] Czas serwera: środa, 5 grudnia 2018 16:45:00 +0000

i śledzenie:

Środowisko:

Metoda żądania: URL żądania POST: http://127.0.0.1:8000/admin/polls/question/1/change/

Wersja Django: 2.1.4 Wersja Pythona: 3.7.1 Zainstalowane aplikacje: ['polls.apps.PollsConfig', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django .contrib.sessions ',' django.contrib.messages ',' django.contrib.staticfiles '] Zainstalowane oprogramowanie pośrednie: [' django.middleware.security.SecurityMiddleware ',' django.contrib.sessions.middleware.SessionMiddleware ',' django .middleware.common.CommonMiddleware ',' django.middleware.csrf.CsrfViewMiddleware ',' django.contrib.auth.middleware.AuthenticationMiddleware ',' django.contrib.messages.middleware.MessageMiddleware ',' django.contrib.auth.middleware.AuthenticationMiddleware ',' django.contrib.messages.middleware.MessageMiddleware ',' django.middleware. ']

Śledzenie:

Plik „/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/backends/utils.py” w _execute 85. return self.cursor.execute (sql, params)

Plik „/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/backends/sqlite3/base.py” w execute 296. return Database.Cursor.execute (self, query, parametry)

Powyższy wyjątek (brak takiej tabeli: main.auth_user__old) był bezpośrednią przyczyną następującego wyjątku:

Plik „/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/core/handlers/exception.py” w wewnętrznym 34. response = get_response (żądanie)

Plik „/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/core/handlers/base.py” w _get_response 126. response = self.process_exception_by_middleware (e, request)

Plik „/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/core/handlers/base.py” w _get_response 124. response = wrapped_callback (request, * callback_args, ** callback_kwargs)

Plik „/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/contrib/admin/options.py” w opakowaniu 604. return self.admin_site.admin_view (view) (* args, ** kwargs)

Plik „/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/utils/decorators.py” w _wrapped_view 142. response = view_func (request, * args, ** kwargs)

Plik „/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/views/decorators/cache.py” w _wrapped_view_func 44. response = view_func (request, * args, ** kwargs)

Plik „/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/contrib/admin/sites.py” w wewnętrznym 223. widoku powrotu (żądanie, * args, ** kwargs)

Plik „/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/contrib/admin/options.py” w change_view 1640. return self.changeform_view (request, object_id, form_url, extra_context)

Plik „/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/utils/decorators.py” w _wrapper 45. return bound_method (* args, ** kwargs)

Plik „/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/utils/decorators.py” w _wrapped_view 142. response = view_func (request, * args, ** kwargs)

Plik „/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/contrib/admin/options.py” w changeform_view 1525. return self._changeform_view (request, object_id, form_url, extra_context)

Plik „/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/contrib/admin/options.py” w _changeform_view 1571. self.log_change (żądanie, nowy_object, change_message)

Plik „/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/contrib/admin/options.py” w log_change 826. change_message = wiadomość,

Plik „/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/contrib/admin/models.py” w log_action 35. change_message = change_message,

Plik „/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/models/manager.py” w manager_method 82. return getattr (self.get_queryset (), name) (* args, ** kwargs)

Plik „/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/models/query.py” w create 413. obj.save (force_insert = True, using = self.db )

Plik „/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/models/base.py” w save 718. force_update = force_update, update_fields = update_fields)

Plik „/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/models/base.py” w save_base 748. updated = self._save_table (raw, cls, force_insert, force_update , używając, update_fields)

Plik „/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/models/base.py” w _save_table 831. result = self._do_insert (cls._base_manager, using, fields , update_pk, raw)

Plik „/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/models/base.py” w _do_insert 869. using = using, raw = raw)

Plik „/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/models/manager.py” w manager_method 82. return getattr (self.get_queryset (), name) (* args, ** kwargs)

Plik „/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/models/query.py” w _insert 1136. return query.get_compiler (using = using) .execute_sql (return_id )

Plik „/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/models/sql/compiler.py” w execute_sql 1289. kursor.execute (sql, params)

Plik „/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/backends/utils.py” w execute 100. return super (). Execute (sql, params)

Plik „/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/backends/utils.py” w execute 68. return self._execute_with_wrappers (sql, params, many = False, executor = self._execute)

Plik „/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/backends/utils.py” w _execute_with_wrappers 77. return executor (sql, params, many, context)

Plik „/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/backends/utils.py” w _execute 85. return self.cursor.execute (sql, params)

Plik „/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/utils.py” w wyjściu 89. podnieś dj_exc_value.with_traceback (traceback) z exc_value

Plik „/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/backends/utils.py” w _execute 85. return self.cursor.execute (sql, params)

Plik „/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/backends/sqlite3/base.py” w execute 296. return Database.Cursor.execute (self, query, parametry)

Typ wyjątku: OperationalError at / admin / polls / question / 1 / change / Exception Value: no such table: main.auth_user__old

NorthernSage
źródło
Jeśli nie masz danych, po prostu je usuń i ponownie przeprowadź migrację. Jeżeli nie jest możliwe, należy python manage.py showmigrationssprawdzić, które migracje nie zrobił
seuling

Odpowiedzi:

52

Właśnie natknąłem się na to sam, wygląda na to, że ma związek z https://code.djangoproject.com/ticket/29182 . Na razie możesz po prostu obniżyć swoją wersję sqlite do wersji wcześniejszej niż 2.6 (np. 2.5.1)

dzieci
źródło
7
Zatwierdzono już poprawkę do tego problemu i zostanie ona uwzględniona w kolejnych wydaniach punktowych 2.1.5 (oczekiwana 1 stycznia 2019 r.) I 2.0.10 (data wydania do ustalenia).
Alasdair
8
Nie tak łatwo obniżyć wersję systemu macOS sqlite3, czy czegoś tu brakuje? Moje obejście polega na zainstalowaniu github / master django (tam, gdzie jest to naprawione).
Alper
1
@Alper Odinstalowałem obecne django, a następnie zainstalowałem django z GitHub. błąd nadal występuje i nie byłem w stanie obniżyć wersji sqlite3 na moim macOS (na przykład używając brew install [email protected]) Masz jakiś pomysł?
Hatzil,
5
Po aktualizacji pamiętaj, aby usunąć bazę danych i odbudować ją za pomocą polecenia migrations.
Mitsjol,
9
@Alvaro Błąd został naprawiony w Django 2.1.5
Selcuk
53

Pozbądź się tego problemu, wykonując następujące czynności:

  1. zachowaj django w wersji 2.1.5 (problem rozwiązany w tej wersji) pip install django==2.1.5
  2. Usuń bazę danych SQLite
  3. Przeprowadź migrację ponownie python manage.py makemigrations a potempython manage.py migrate
  4. Uruchom serwer python manage.py runserver

GOTOWE!

nurealam siddiq
źródło
1
To zadziała idealnie, ale przypuśćmy, że nie chcesz usuwać pliku db sqlite?
Philip Mutua
1
działa to nawet bez usuwania bazy danych sqlite (ale nadal migruje). pracowałem nad starymi projektami w wersji 2.0.4
izzulmakin
Dzięki, to działa dobrze. Używam wersji 2.0.7 i mam problem z zapisaniem danych administratora.
xreyc_developer
Dziękuję bardzo, to działa dobrze
nowy programista
15

Właśnie to zrobiłem i rozwiązało problem:

pip install Django --upgrade

Następnie:

python manage.py migrate

python manage.py makemigrations app

python manage.py migrate
zurbaranf
źródło
11

Oto, co zrobiłem, aby rozwiązać ten problem:

  1. Przejdź do środowiska wirtualnego i zainstaluj [email protected]

    pip install django==2.1.7
    
  2. Usuń db.sqlite3plik z folderu głównego.

  3. Utwórz nowy db.sqlite3w folderze głównym.
  4. Ponownie uruchom migracje:

    python3 manage.py makemigrations
    
    python3 manage.py migrate
    

Teraz powinno działać dobrze.

MING WU
źródło
„usuń plik db.sqlite3 w folderze głównym” to klucz ~ run python3 manage.py makemigrations utworzy nowy plik sqlite3.
Jerome
Z jakiegoś powodu usunięcie sqlite nie tylko działało, próbowałem również usunąć migracje pycache + (dopiero uczę się Django), ale zadziałało.
Anshuman Kumar
10

Problem jest spowodowany zmodyfikowanym zachowaniem ALTER TABLE RENAMEinstrukcji w SQLite 3.26.0 (patrz uwaga dotycząca zgodności ). Wprowadzili również PRAGMA legacy_alter_table = ONoświadczenie w celu zachowania zgodności z poprzednimi wersjami. Nadchodzące wydanie Django 2.1.5 wykorzystuje wspomnianą wcześniej instrukcję jako poprawkę. Oczekuje się, że to 1 stycznia 2019 r.

Imre Kis
źródło
9

przejdź do tego folderu django / db / backends / sqlite3

schema.pyplik kopii zapasowej do innego folderu

otwórz oryginalny schema.py w edytorze tekstu

tam możesz zobaczyć fragment kodu, taki jak

    def __enter__(self):
    # Some SQLite schema alterations need foreign key constraints to be
     # disabled. Enforce it here for the duration of the schema edition.
     if not self.connection.disable_constraint_checking():
         raise NotSupportedError(
             'SQLite schema editor cannot be used while foreign key '
             'constraint checks are enabled. Make sure to disable them '
             'before entering a transaction.atomic() context because '
             'SQLite3 does not support disabling them in the middle of '
             'a multi-statement transaction.'
         )
     self.connection.cursor().execute('PRAGMA legacy_alter_table = ON')
     return super().__enter__()

skomentuj je i wklej następujący fragment kodu

     def __enter__(self):
    # Some SQLite schema alterations need foreign key constraints to be
    # disabled. Enforce it here for the duration of the transaction.
    self.connection.disable_constraint_checking()
    self.connection.cursor().execute('PRAGMA legacy_alter_table = ON')
    return super().__enter__()

To zadziałało dla mnie. (kopia zapasowa schema.py jest na wypadek, gdyby praca poszła źle; D)

po więcej informacji

https://github.com/django/django/pull/10733/commits/c8ffdbe514b55ff5c9a2b8cb8bbdf2d3978c188f#diff-0c8f495bfee773ab7b5409533bd6d7ef

Namal Jayasundara
źródło
Użyłem tej poprawki dla django 1.11, z wyjątkiem tego, że musiałem tylko dodać wiersz "c.execute ('PRAGMA legacy_alter_table = ON')" po "c.execute ('PRAGMA Foreign_keys = 0')" i to naprawiło.
n00b
2
Jestem w trakcie samouczka, który wymaga django 2.0.7. To rozwiązanie działa :)
Bisonbleu
@Bisonbleu Myślę, że jestem w trakcie tego samego samouczka. Ale rozwiązanie nie zadziałało dla mnie. Czy mógłbyś wyjaśnić, co zrobiłeś?
code_life
2
@unathletic_coder zgodnie z sugestią Namala Jayasundary, poszedłem do /project_name/lib/python3.7/site-packages/django/db/backends/sqlite3/schema.py w linii 21, która zaczyna się od: def __enter __ (self): i zastąpił istniejący kod sugerowanymi 3 wierszami kodu. Robię youtube.com/watch?v=F5mRW0jo-U4
Bisonbleu
6

Rozwiązałem problem, aktualizując Django z 2.1.4 do 2.1.5, ale musiałem przebudować projekt od nowa, ponieważ błąd wydaje się być w jakiś sposób powiązany z obiektami, które wstawiłem do bazy danych przy użyciu starej wersji Django.

Tms91
źródło
1
w takim przypadku polecenie migrate i makemigrations jest wystarczające dla nowego django.
Pravin RGMishra
5
  1. Najpierw zatrzymaj serwer i usuń plik db.sqlite3.
  2. Następnie musisz uruchomić: python manage.py makemigrations python manage.py migrate
  3. Po uruchomieniu tego polecenia musisz utworzyć superużytkownika. Aby utworzyć superużytkownika, uruchom: python manage.py createduperuser Wprowadź tam szczegóły superużytkownika.
  4. Uruchom ponownie serwer.

Proszę bardzo.

Milan Adhikari
źródło
5

dla mnie było to z mojej wersji django (to było 2.1) zainstaluj wyższą wersję (z jakichś powodów używałem 2.1.5) ** usuń db.sqlite3 i wszystko w folderze migracji oprócz komendy init .py run:

pip install django==2.1.5 --upgrade
python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver
Arsham
źródło
4

To samo przytrafiło się mnie, bardzo frustrujące. Używam anacondy w moich środowiskach, stwierdziłem, że nie mogę usunąć sqlite bez natychmiastowej ponownej instalacji najnowszej wersji sqlite. Próbowanie starszej wersji django również nie działało. Jedynym rozwiązaniem, które mi się sprawdziło, jest użycie bazy danych PostgreSQL. Z pewnością nie jest to idealne rozwiązanie, ale planuję w przyszłości wykorzystać bazę danych PostgreSQL, więc nie była to całkowita strata czasu. Jeśli znajdziesz się w tym samym miejscu, w którym byłem, to ten film może być pomocny, jeśli chcesz wiedzieć, jak połączyć bazę danych PostgreSQL z projektem django.

Będziesz musiał zainstalować bazę danych postgreSQL przed dokonaniem zmian w pliku settings.py, instalacja wymaga mniej więcej kliknięcia Dalej na wszystkich opcjach. Pamiętaj jednak, jaką nazwę użytkownika i hasło używasz podczas instalacji.

Ithomson90
źródło
3

W przypadku powyższego problemu i rozwiązania:

1) Podejdź do terminala i wpisz pip install django==2.1.7 lub najnowszą wersję django

2) Po instalacji, w terminalu wpisz python manage.py makemigrations , a następniepython manage.py migrate

3) W terminalu uruchom serwer z kodem python manage.py runserver

4) Zaloguj się do serwera administratora za pomocą hasła i dodaj produkt, pomyślnie doda produkt.

Aravind Krishna Saravu
źródło
Witamy w Stack Overflow! Proszę ujawnić wszelkie powiązania i nie wykorzystywać tej witryny do promowania swojej witryny poprzez publikowanie. Zobacz: Jak napisać dobrą odpowiedź? .
2

Dla innych, którzy nie chcą obniżać wersji żadnego oprogramowania, możesz udać się do swojego settings.pypliku, aw DATABASESdyktandzie możesz zastąpić .sqlit3go .postgresql, a tuż pod nim zmienić db.sqlit3nadb.sql . Spowoduje to przełączenie domyślnej bazy danych na korzystanie z PostgreSQL.

Robiąc to, będziesz musiał pip install psycopg2 .

Usuń db.sqlite3plik (jeśli go masz / nie obchodzi Cię utrata tego, co w nim jest) i wszystko inne, co nie jest __init__.pyplikiem w folderze migracji aplikacji. Gdy już to wszystko zrobisz, możesz uruchomić python manage.py makemigrationsi Pythonamanage.py migrate a potem powinno działać :)

Mam nadzieję, że udało mi się komuś pomóc!

Ziiik
źródło
2
PostgreSQL również musi być zainstalowany, aby to działało dla każdego, kto nie może zrozumieć, dlaczego po wykonaniu tych wszystkich czynności pojawiają się błędy połączenia. :)
Gilbert
czy psycopg2 nie jest PostgreSQL? Bo to by wyjaśniało, dlaczego nie uruchamia dla mnie serwera haha
Ziiik,
2
AFAIK psycopg2 to adapter umożliwiający Pythonowi komunikowanie się z PostgreSQL, ale PostgreSQL musi być zainstalowany osobno. Uwaga: Jestem nowy w Django, więc weź wszystko, co powiem, z przymrużeniem oka.
Gilbert
2

Open => / YourAppFolder / migrations / Możesz zobaczyć migrowane pliki, tak jak „ 0001_initial.py ”, aby usunąć wszystkie te pliki. I uruchom następujące polecenie 1- python manage.py makemigrations 2 - python manage.py migrate Hope, musi rozwiązać twój problem

Usama Nadeem
źródło
1
ostatecznie problem nie był z tym związany, ale dziękuję za poświęcony czas!
northernSage,
2

Nawet po aktualizacji do najnowszej wersji Django 2.2.12 i uruchomieniu dowolnego migratelub oficjalnego skryptu odbudowy bazy danych , otrzymałem ten sam błąd __old_: django.db.utils.IntegrityError: The row in table 'djangocms_blog_post_translation' with primary key '2' has an invalid foreign key: djangocms_blog_post_translation.master_id contains a value '2' that does not have a corresponding value in djangocms_blog_post__old.id.

Oto mój hack:

  1. zrzuć zawartość bazy danych do sql: sqlite3 my_db.db .dump > my_db.sql
  2. uruchomić regex nad wyjściem sql, zastępując __old" ("id")z" ("id") DEFERRABLE INITIALLY DEFERRED
  3. usuń stary plik bazy danych
  4. załaduj zmodyfikowany plik sql do nowej bazy danych: sqlite3 my_db.db < my_db.sql
  5. ??? i zysk
tehfink
źródło
1

Kroki:

  1. Odinstaluj aktualne Django ze swojego ENV. Po prostu usuń folder „anaconda3 / envs / yourenv / lib / python3.7 / site-packages / Django wszystkie wersje .. * Uwaga: Tylko dla użytkowników Anacondy inni użytkownicy powinni dowiedzieć się, jak odinstalować pakiet z twojego ENV.

  2. Wejdź na Github.com/django/django.

  3. Pobierz repozytorium jako plik zip.

  4. Wypakuj plik zip.

  5. Przełącz się na ENV.

  6. Wejdź do wyodrębnionego folderu.

  7. Uruchom "python setup.py install" I zainstaluj Django.

  8. Usuń poprzedni plik db.sqlite3. Teraz ponownie zastosuj migracje, aby utworzyć nowy plik db.sqlite3.

* Uwaga: nie wiem, jak naprawić poprzedni plik dbfile i zapobiec utracie danych. Więc powiedz mi, jeśli wiesz.

  1. Uruchom serwer.

Gratulacje! Teraz działa dobrze.

Aktualizacja do najnowszego django w styczniu z oficjalnej wersji Django.

Amar Nath
źródło
1

Miałem ten sam problem, z wyjątkiem tego, że miałem 2 bazy danych sqlite i niestandardowy router bazy danych. Udało mi się go uruchomić, obniżając Django do wersji 1.11.20 i nie ma potrzeby ponownego tworzenia baz danych.

Kristiyan Gospodinov
źródło
1

Dla tych, którzy nie mogą rozwiązać tego błędu za pomocą powyższych odpowiedzi, jeśli Twoja aplikacja została utworzona z nazwą „main”, ten błąd może być przyczyną tego samego problemu z nazwą aplikacji. Spróbuj więc zmienić nazwę aplikacji „main” na inną.

Jinho Park
źródło
1

Rozwiązałem problem, zmieniając niektóre modele. Miałem jeden nazwany projekt i jeden nazwany projekt. Tabele bazy danych się pomyliły i wyrzuciły mi ten błąd.

Peter Smiley
źródło
1

Rozwiązałem ten problem, używając poniżej:

1) Usuń plik db.sqlit3

2) katalog aplikacji usuń wszystko w pycache

3) manage.py makemigrations, manage.py migrate, manage.py createduperuser, a następnie manage.py runerver.

Yogesh Nikam Patil
źródło
1

Miałem ten sam problem i naprawiłem go, wykonując poniższe czynności:

1) Pobierz najnowszą djangowersję

2) pobierz najnowsze SQL Lite wersję

3) usuń db.sqlite3plik ze swojego projektu

4) Dokonaj niewielkiej zmiany w models.py(np. Zmień rozmiar pola)

5) wygeneruj nowy db.sqllite3plik, uruchamiając makemigrations&migrate commands

6) zaimportuj nowo utworzony db.sqllite3plik doSQL Lite

Adrian Balea
źródło
1

Zainstalowałem / obniżyłem django do wersji 2.2, to usunęło django 3.x

pip install django==2.2

a następnie usunąłem plik db.sqlite, a następnie

próbowałem

python manage.py makemigrations,
python manage.py migrate 
python manage.py creatingsuperuser. 
MbeforeL
źródło
1

zaktualizuj wersję django: pip install django - a następnie uaktualnij

./manage.py makemigration
./manage.py migrate
./manage.py runserver

pysaundary
źródło
0

Są tylko 4 rzeczy, które zrobiłem w linii poleceń i naprawiłem moje.

  1. ctrl + c (zatrzymaj serwer)
  2. py manage.py makemigrations
  3. py manage.py migrate
  4. py manage.py runserver (serwer startowy)
Nellymandela
źródło
1
Problem został już rozwiązany w wersji 2.1.5 punktowej (numer zgłoszenia nr 29182 w sekcji „Poprawki błędów w informacjach o wydaniu). Docs.djangoproject.com/en/2.1/releases/2.1.5/#bugfixes
northernSage
0

django-2.2.7
To zadziałało dla mnie -

1) Usuń plik db.sqlite3 .
2) W każdej aplikacji, w folderze migracji , usuń wszystko inne niż __init__.py .
3) W każdej aplikacji usuń __pycache__ folder .

Nie jestem pewien, czy musiałeś to zrobić dla wszystkich aplikacji, czy tylko danej aplikacji, ale to zadziałało.

RAJVIJAY
źródło
Usuwanie migrationsplików jest wartą praktyki przy rozwiązywaniu tego rodzaju problemów. @rajvijay
Whale 52 Hz