2017-12-17 3 views
0

Ich versuche, einen JSON-Dump meiner Django Sqlite db in eine frische db zu laden, mit manage.py loaddata. Ich bin Begegnung mit den folgenden django.db.utils.OperationalError jedoch:Django - Ladedaten von JSON-Dump gibt 'keine solche Tabelle' Fehler

Could not load foo.Bar(pk=1): no such table: foo_bar 

Die Tabelle in der Datenbank auf jeden Fall vorhanden ist, und alle meine Migrationen angewandt werden, geprüft showmigrations verwenden. Also bin ich ratlos, was los ist. Ich wäre nicht überrascht, wenn es etwas Einfaches ist. Würde mich über Vorschläge freuen.

N.B: Die db ich versuche, die Daten in nur eine leere Datei zu laden. Könnte das das Problem sein? Muss ich die relevanten Tabellen in dieser frischen Datenbank erstellen, bevor ich sie aus dem Gerät lade?

+0

Wie Sie das Gerät exportieren? Wie importierst du das Gerät? Bitte teilen Sie die Befehle. –

+0

Sicher, ich dump es nur mit 'python manage.py dumpdata foo --indent 4 --output foo/fixtures/foo.json', laden Sie es mit' python manage.py loaddata foo.json --database test.db' . Vielen Dank. – ChrisM

+0

Danke. Kann foo_bar ein nicht verwaltetes Modell sein? –

Antwort

0

Wenn Sie sich noch in der Entwicklung befinden, versuchen Sie, die Datenbank zurückzusetzen. Beachten Sie, dass alle Ihre Daten verloren gehen. Erstellen und speichern Sie einige neue Daten und prüfen Sie, ob Sie immer noch den gleichen Fehler erhalten.

Hier ist ein Skript, wie die Datenbank zurück:

#!/usr/bin/env bash 

#deletes the sqlite3 database 
rm db.sqlite3 

#deletes migration files of your module(s) 
# __init__.py needs to be recreated 
rm -R your_module/migrations/* 
touch your_module/migrations/__init__.py 

# migrates changes and synchronizes the database 
python manage.py makemigrations && python manage.py migrate 
python manage.py migrate --fake-initial 
python manage.py migrate --run-syncdb 
Verwandte Themen