Django - Keine solche Tabelle: main.auth_user__old

81

Ich habe das erste App-Tutorial aus den offiziellen Django-Dokumenten befolgt und diesen Fehler erhalten, als ich versucht habe, einige Änderungen zu speichern, die über die Administrationsseite vorgenommen wurden. Ich habe einige Nachforschungen angestellt, aber die möglichen Lösungen, die ich finden konnte, wie die Migration der Datenbank, funktionieren einfach nicht. Lassen Sie mich einfach wissen, ob Sie einen bestimmten Teil meines Codes sehen möchten.

Folgendes ist ein Fehler:

OperationalError unter / admin / polls / question / 1 / change / keine solche Tabelle: main.auth_user__old Anforderungsmethode: POST-Anforderungs-URL: http://127.0.0.1:8000/admin/polls/question/1/change/ Django Version: 2.1.4 Ausnahmetyp: OperationalError Ausnahmewert: Keine solche Tabelle: main.auth_user__old Ausnahmestandort: /Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/backends/sqlite3/base .py in execute, Zeile 296 Python Executable: / Users / gfioravante / Projects / test_app / ta_env / bin / python3 Python-Version: 3.7.1 Python-Pfad:
['/ 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 '] Serverzeit: Mi, 5. Dezember 2018 16:45:00 +0000

und der Traceback:

Umgebung:

Anforderungsmethode: POST-Anforderungs-URL: http://127.0.0.1:8000/admin/polls/question/1/change/

Django-Version: 2.1.4 Python-Version: 3.7.1 Installierte Anwendungen: ['polls.apps.PollsConfig', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django' .contrib.sessions ',' django.contrib.messages ',' django.contrib.staticfiles '] Installierte Middleware: [' 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.middleware.Fickjacking. ']

Zurück verfolgen:

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

Datei "/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/backends/sqlite3/base.py" in Execute 296. return Database.Cursor.execute (self, query, params)

Die obige Ausnahme (keine solche Tabelle: main.auth_user__old) war die direkte Ursache für die folgende Ausnahme:

Datei "/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/core/handlers/exception.py" in inner 34. response = get_response (request)

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

Datei "/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/core/handlers/base.py" in _get_response 124. response = wrap_callback (request, * callback_args, ** callback_kwargs)

Datei "/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/contrib/admin/options.py" in Wrapper 604. return self.admin_site.admin_view (view) (* args, ** kwargs)

Datei "/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/utils/decorators.py" in _wrapped_view 142. response = view_func (Anfrage, * Argumente, ** kwargs)

Datei "/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/views/decorators/cache.py" in _wrapped_view_func 44. response = view_func (Anfrage, * Argumente, ** kwargs)

Datei "/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/contrib/admin/sites.py" in innerer 223. Rückgabeansicht (Anfrage, * args, ** kwargs)

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

Datei "/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/utils/decorators.py" in _wrapper 45. return bound_method (* args, ** kwargs)

Datei "/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/utils/decorators.py" in _wrapped_view 142. response = view_func (Anfrage, * Argumente, ** kwargs)

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

Datei "/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/contrib/admin/options.py" in _changeform_view 1571. self.log_change (Anfrage, neues_Objekt, Änderungsnachricht)

Datei "/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/contrib/admin/options.py" in log_change 826. change_message = message,

Datei "/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/contrib/admin/models.py" in log_action 35. change_message = change_message,

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

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

Datei "/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/models/base.py" in save 718. force_update = force_update, update_fields = update_fields)

Datei "/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/models/base.py" in save_base 748. aktualisiert = self._save_table (raw, cls, force_insert, force_update , using, update_fields)

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

Datei "/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/models/base.py" in _do_insert 869. using = using, raw = raw)

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

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

Datei "/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/models/sql/compiler.py" in execute_sql 1289. cursor.execute (sql, params)

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

Datei "/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/backends/utils.py" in Execute 68. return self._execute_with_wrappers (sql, params, many = False, executor = self._execute)

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

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

Datei "/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/utils.py" in Exit 89. Erhöhen Sie dj_exc_value.with_traceback (traceback) von exc_value

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

Datei "/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/backends/sqlite3/base.py" in Execute 296. return Database.Cursor.execute (self, query, params)

Ausnahmetyp: OperationalError unter / admin / polls / question / 1 / change / Ausnahmewert: keine solche Tabelle: main.auth_user__old

NordSage
quelle
Wenn Sie keine Daten haben, entfernen Sie diese einfach und migrieren Sie sie erneut. Wenn nicht möglich, tun Sie, um python manage.py showmigrationszu sehen, welche Migrationen nicht durchgeführt wurden
am

Antworten:

51

Ich bin gerade selbst darauf gestoßen, es scheint mit https://code.djangoproject.com/ticket/29182 verwandt zu sein . Im Moment können Sie Ihre SQLite-Version einfach auf eine Version vor 2.6 (z. B. 2.5.1) herunterstufen.

Kinder
quelle
7
Ein Fix für das Problem wurde jetzt festgeschrieben und wird in den nächsten Punktversionen 2.1.5 (voraussichtlich 1. Januar 2019) und 2.0.10 (Veröffentlichungsdatum TBD) enthalten sein.
Alasdair
7
Es ist nicht so einfach, das MacOS-System sqlite3 herunterzustufen, oder fehlt mir hier etwas? Meine Problemumgehung besteht darin, github / master django zu installieren (wo dies behoben ist).
Alper
1
@Alper Ich habe das aktuelle Django deinstalliert und dann Django von GitHub installiert. Der Fehler besteht weiterhin und ich konnte sqlite3 unter meinem MacOS nicht herunterstufen (z. B. mithilfe der Brew-Installation [email protected]). Haben Sie eine Idee?
Hatzil
5
Stellen Sie nach dem Aktualisieren sicher, dass Sie die Datenbank löschen und mit dem Befehl migrations neu erstellen.
Mitsjol
9
@ Alvaro Der Fehler wurde in Django 2.1.5
Selcuk
49

Beheben Sie dieses Problem auf einfache Weise, indem Sie die folgenden Schritte ausführen:

  1. Behalte Django Version 2.1.5 (das in dieser Version behandelte Problem) pip install django==2.1.5
  2. Löschen Sie die SQLite-Datenbank
  3. Migrieren Sie immer python manage.py makemigrationswiederpython manage.py migrate
  4. Starten Sie den Server python manage.py runserver

ERLEDIGT!

nurealam siddiq
quelle
1
Dies wird perfekt funktionieren, aber nehmen wir an, Sie möchten die SQLite-Datenbankdatei nicht löschen?
Philip Mutua
1
Dies funktioniert auch ohne Löschen der SQLite-Datenbank (aber trotzdem migrieren). Ich arbeitete an alten Projekten mit 2.0.4
Izzulmakin
Danke, das funktioniert gut. Ich verwende Version 2.0.7 und habe ein Problem beim Speichern von Daten im Administrator.
xreyc_developer22
13

Habe dies einfach getan und das Problem gelöst:

pip install Django --upgrade

Dann:

python manage.py migrate

python manage.py makemigrations app

python manage.py migrate
zurbaranf
quelle
10

Das Problem wird durch das geänderte Verhalten der ALTER TABLE RENAMEAnweisung in SQLite 3.26.0 verursacht (siehe Kompatibilitätshinweis ). Sie führten auch die PRAGMA legacy_alter_table = ONAnweisung ein, um die Kompatibilität mit früheren Versionen aufrechtzuerhalten. Die kommende Django-Version 2.1.5 verwendet die zuvor erwähnte Anweisung als Hotfix. Es wird am 1. Januar 2019 erwartet.

Imre Kis
quelle
10

Folgendes habe ich getan, um dieses Problem zu lösen:

  1. Gehen Sie zur virtuellen Umgebung und installieren Sie [email protected]

    pip install django==2.1.7
    
  2. Löschen Sie die db.sqlite3Datei in Ihrem Stammordner.

  3. Erstellen Sie das neue db.sqlite3in Ihrem Stammordner.
  4. Führen Sie Migrationen erneut aus:

    python3 manage.py makemigrations
    
    python3 manage.py migrate
    

Jetzt sollte es gut gehen.

MING WU
quelle
"Lösche die Datei db.sqlite3 in deinem Stammordner" ist der Schlüssel ~ run python3 manage.py makemigrations erstellt eine neue sqlite3-Datei.
Jerome
Aus irgendeinem Grund hat das Löschen von SQLite nicht nur funktioniert, ich habe auch versucht, Pycache + -Migrationen zu löschen (ich lerne gerade Django), dann hat es bei mir funktioniert.
Anshuman Kumar
9

Gehen Sie zu diesem Ordner django / db / backends / sqlite3

Sicherungsdatei schema.pyin einen anderen Ordner

Öffnen Sie die ursprüngliche schema.py in einem Texteditor

Dort sehen Sie ein Code-Snippet wie

    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__()

Kommentieren Sie sie und fügen Sie das folgende Code-Snippet ein

     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__()

Das hat bei mir funktioniert. (Die Sicherung für die Datei schema.py erfolgt für den Fall, dass die Arbeit schief geht. D)

Für mehr Information

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

Namal Jayasundara
quelle
Ich habe diesen Fix für Django 1.11 verwendet, außer dass ich nur die Zeile "c.execute ('PRAGMA Legacy_alter_table = ON')" nach "c.execute ('PRAGMA Foreign_keys = 0')" hinzufügen musste und dieser Fehler behoben wurde.
n00b
2
Ich bin mitten in einem Tutorial, das Django 2.0.7 erfordert. Diese Lösung funktioniert :)
Bisonbleu
@ Bisonbleu Ich glaube, ich bin mitten im selben Tutorial. Aber die Lösung hat bei mir nicht funktioniert. Könnten Sie näher erläutern, was Sie getan haben?
code_life
2
@unathletic_coder Wie in der Antwort von Namal Jayasundara vorgeschlagen, ging ich zu /project_name/lib/python3.7/site-packages/django/db/backends/sqlite3/schema.py in Zeile 21, die mit: def __enter __ (self): und beginnt ersetzte den vorhandenen Code durch die vorgeschlagenen 3 Codezeilen. Ich mache youtube.com/watch?v=F5mRW0jo-U4
Bisonbleu
6

Ich habe das Problem durch ein Upgrade von Django von 2.1.4 auf 2.1.5 gelöst, musste das Projekt jedoch neu erstellen, da der Fehler irgendwie mit den Objekten zusammenhängt, die ich mit der alten Version von Django in die Datenbank eingefügt habe.

Tms91
quelle
1
in diesem Fall migrieren und Makemigrationen befehlen, wo genug für neue Django.
Pravin RGMishra
5

Für mich war es von meiner Django-Version (das war 2.1), eine höhere Version zu installieren (ich habe aus bestimmten Gründen 2.1.5 verwendet) ** lösche db.sqlite3 und alles im Migrationsordner außer dem Befehl 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
quelle
4

Das gleiche ist mir passiert, sehr frustrierend. Ich verwende Anaconda für meine Umgebungen. Ich stellte fest, dass ich SQLite nicht entfernen konnte, ohne sofort die aktuellste Version von SQLite neu zu installieren. Der Versuch einer älteren Version von Django schien ebenfalls nicht zu funktionieren. Die einzige Lösung, die für mich funktioniert hat, ist die Verwendung einer PostgreSQL-Datenbank. Es ist sicherlich nicht ideal, aber ich plane, die PostgreSQL-Datenbank in Zukunft zu verwenden, damit dies keine reine Zeitverschwendung war. Wenn Sie sich am selben Ort wie ich befinden, kann dieses Video hilfreich sein, wenn Sie wissen möchten, wie Sie die PostgreSQL-Datenbank mit Ihrem Django-Projekt verbinden.

Sie müssen die postgreSQL-Datenbank installieren, bevor Sie die Änderungen in settings.py vornehmen können. Bei der Installation müssen Sie mehr oder weniger auf Weiter klicken. Denken Sie jedoch an den Benutzernamen und das Kennwort, die Sie während der Installation verwenden.

Ithomson90
quelle
4
  1. Stoppen Sie zuerst den Server und löschen Sie db.sqlite3.
  2. Dann müssen Sie Folgendes ausführen: python manage.py makemigrations python manage.py migrate
  3. Nachdem Sie diesen Befehl ausgeführt haben, müssen Sie einen Superuser erstellen. Führen Sie zum Erstellen eines Superusers Folgendes aus: python manage.py createduperuser Geben Sie dort die Superuser-Details ein.
  4. Führen Sie Ihren Server erneut aus.

Los geht's.

Milan Adhikari
quelle
3

Für das obige Problem und die Lösung ist:

1) Gehen Sie zum Terminal und geben Sie pip install django==2.1.7die neueste Version von Django ein

2) Geben Sie nach der Installation In das Terminal ein python manage.py makemigrationsund dannpython manage.py migrate

3) Starten Sie im Terminal den Server mit Code python manage.py runserver

4) Melden Sie sich mit dem Kennwort beim Administrationsserver an und fügen Sie das Produkt hinzu. Das Produkt wird erfolgreich hinzugefügt.

Aravind Krishna Saravu
quelle
Willkommen bei Stack Overflow! Bitte legen Sie jegliche Zugehörigkeit offen und verwenden Sie die Website nicht, um Ihre Website durch Veröffentlichung zu bewerben. Siehe Wie schreibe ich eine gute Antwort? .
2

Für andere , die wollen keine Software degradieren, können Sie in Ihrem Kopf - settings.pyDatei und in der DATABASESdict, können Sie ersetzen .sqlit3mit .postgresql, und es direkt unter der Änderung db.sqlit3zu db.sql. Dadurch wird Ihre Standard-Datenbank auf die Verwendung von postgreSQL umgestellt.

Dazu müssen Sie pip install psycopg2.

Löschen Sie Ihre db.sqlite3Datei (wenn Sie eine haben / sich nicht darum kümmern, was darin enthalten ist) und alles andere, was nicht die __init__.pyDatei im Migrationsordner Ihrer App ist. Sobald Sie das alles getan haben, können Sie laufen python manage.py makemigrationsund Python manage.py migrateund dann sollte es funktionieren :)

Hoffe ich konnte jemandem helfen!

Ziiik
quelle
2
PostgreSQL muss auch installiert werden, damit dies für alle funktioniert, die nicht herausfinden können, warum nach all dem Verbindungsfehler auftreten. :)
Gilbert
ist psycopg2 nicht PostgreSQL? Denn das würde erklären, warum es keinen Server für mich starten würde haha
Ziiik
2
AFAIK psycopg2 ist ein Adapter, mit dem Python mit PostgreSQL kommunizieren kann. PostgreSQL muss jedoch separat installiert werden. Hinweis: Ich bin neu in Django, also nimm alles, was ich sage, mit einem Körnchen Salz.
Gilbert
2

Öffnen => / YourAppFolder / migrations / Sie würden sehen, dass die migrierenden Dateien genau wie ' 0001_initial.py ' alle diese Dateien löschen. Und führen Sie den folgenden Befehl aus: 1- python manage.py makemigrations 2- python manage.py migrate Hoffe, er muss Ihr Problem lösen

Usama Nadeem
quelle
1
Am Ende hatte das Problem nichts damit zu tun, aber danke, dass Sie sich die Zeit genommen haben!
NorthernSage
2

Selbst nach dem Upgrade auf das neueste Django 2.2.12 und dem Ausführen eines migrateoder des offiziellen Skripts zum Wiederherstellen der Datenbank wurde der folgende Fehler angezeigt __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.

Hier ist mein Hack:

  1. Speichern Sie den Datenbankinhalt in SQL: sqlite3 my_db.db .dump > my_db.sql
  2. Führen Sie einen regulären Ausdruck über die SQL-Ausgabe aus und ersetzen Sie ihn __old" ("id")durch" ("id") DEFERRABLE INITIALLY DEFERRED
  3. Löschen Sie die alte Datenbankdatei
  4. Laden Sie die geänderte SQL in eine neue Datenbank: sqlite3 my_db.db < my_db.sql
  5. ??? & Gewinn
tehfink
quelle
1

Schritte:

  1. Deinstallieren Sie den aktuellen Django von Ihrem ENV. Löschen Sie einfach den Ordner "anaconda3 / envs / yourenv / lib / python3.7 / site-packages / Django aller Versionen". * Hinweis: Nur für Anaconda-Benutzer sollten andere Benutzer herausfinden, wie ein Paket von Ihrem ENV deinstalliert werden kann.

  2. Gehen Sie zu Github.com/django/django.

  3. Laden Sie das Repo als Zip-Datei herunter.

  4. Reißverschluss extrahieren.

  5. Wechseln Sie zu Ihrem ENV.

  6. Geben Sie den extrahierten Ordner ein.

  7. Führen Sie "python setup.py install" aus und installieren Sie Django.

  8. Löschen Sie Ihre vorherige Datei db.sqlite3. Wenden Sie nun die Migrationen erneut an, um eine neue Datei db.sqlite3 zu erstellen.

* Hinweis: Ich weiß nicht, wie ich die vorherige Datenbankdatei reparieren und Datenverlust verhindern kann. Also sag es mir bitte, wenn du es weißt.

  1. Führen Sie den Server aus.

Glückwunsch! Es funktioniert jetzt gut.

Update auf den neuesten Django im Januar von der offiziellen Django-Veröffentlichung.

Amar Nath
quelle
1

Ich hatte das gleiche Problem, außer dass ich 2 SQLite-Datenbanken und einen benutzerdefinierten Datenbank-Router hatte. Ich habe es geschafft, es zum Laufen zu bringen, indem ich Django auf 1.11.20 heruntergestuft habe und die Datenbanken nicht neu erstellen mussten.

Kristiyan Gospodinov
quelle
1

Für diejenigen, die diesen Fehler mit den obigen Antworten nicht beheben können, kann dieser Fehler auftreten, wenn Sie Ihre App mit dem Namen "main" erstellt haben. Versuchen Sie also, Ihren App-Namen "main" in einen anderen zu ändern.

Jinho Park
quelle
1

Ich habe das Problem gelöst, indem ich einige meiner Modelle geändert habe. Ich hatte ein benanntes Projekt und ein benanntes Projekt. Die Datenbanktabellen wurden verwirrt und warfen mir diesen Fehler.

Peter Smiley
quelle
1

Ich habe dieses Problem wie folgt gelöst:

1) Löschen Sie die Datei db.sqlit3

2) Das App-Verzeichnis löscht alles im Pycache

3) Verwalten von.py-Makemigrationen, Verwalten.Py-Migrieren, Verwalten.Py erstellt Superuser und dann Verwalten.Py-Runserver.

Yogesh Nikam Patil
quelle
1

Ich hatte das gleiche Problem und habe es wie folgt behoben:

1) Holen Sie sich die neueste djangoVersion

2) Holen Sie sich die neueste SQL LiteVersion

3) Löschen Sie die db.sqlite3Datei aus Ihrem Projekt

4) Nehmen Sie eine kleine Änderung an models.py(z. B. ändern Sie die Größe eines Feldes)

5) Generieren Sie eine neue db.sqllite3Datei, indem Sie makemigrations& ausführenmigrate commands

6) Importieren Sie die neu erstellte db.sqllite3Datei inSQL Lite

Adrian Balea
quelle
1

Ich habe Django auf Version 2.2 installiert / heruntergestuft, dies hat Django 3.x entfernt

pip install django==2.2

und dann habe ich die Datei db.sqlite gelöscht und dann

Ich habe es versucht

python manage.py makemigrations,
python manage.py migrate 
python manage.py creatingsuperuser. 
MbeforeL
quelle
1

Update Django Version: Pip installieren Django - Upgrade dann

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

pysaundary
quelle
0

Es gibt nur 4 Dinge, die ich in der Kommandozeile getan habe und die meine behoben haben.

  1. ctrl + c (Server stoppen)
  2. py manage.py makemigrations
  3. py manage.py migrate
  4. py manage.py runserver (Server starten)
Nellymandela
quelle
1
Das Problem wurde mit 2.1.5 Point - Release (Ticketnummer # 29182 in der „Fehlerbehebungen Sitzung der Release Notes) bereits festgelegt. Docs.djangoproject.com/en/2.1/releases/2.1.5/#bugfixes
northernSage
0

django-2.2.7
Das hat bei mir funktioniert -

1) Löschen Sie db.sqlite3 .
2) Löschen Sie in jeder App im Migrationsordner alles andere als __init__.py .
3) Löschen Sie in jeder App den Ordner __pycache__ .

Ich bin mir nicht sicher, ob Sie dies für alle Apps oder nur für die betreffende App tun mussten, aber das hat bei mir funktioniert.

RAJVIJAY
quelle
Das Löschen von migrationsDateien lohnt sich, um diese Art von Problemen zu lösen. @rajvijay
Whale 52Hz