Wie kann ich SQLITE mit DJANGO auf Windows 7
Frage
Ich bin nach der Anleitung auf der django Website, die ich previsouly Windows XP tat mit und alles ging gut, aber auf Windows 7 bekomme ich folgende Fehlermeldung:
sqlite3.OperationalError: unable to open database file
Ich verwende folgende Möglichkeiten:
python manage.py sql Blog
Hat jemand irgendwelche Ideen, was falsch sein könnte. Die Datenbankdatei wird in C:\Software\Sqlite\Databases\Blog.db
befindet
Und die relative settings.py oder Abschnitt ist einfach:
DATABASE_ENGINE = 'sqlite3' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
DATABASE_NAME = 'C:\Software\Sqlite\databases\blog.db' # Or path to database file if using sqlite3.
DATABASE_USER = '' # Not used with sqlite3.
DATABASE_PASSWORD = '' # Not used with sqlite3.
DATABASE_HOST = '' # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = '' # Set to empty string for default. Not used with
Ich habe auch zum Testen jedem mit vollständigen Berechtigungen hinzugefügt.
Aber wie ich sage, dass ich die folgende Fehlermeldung erhalten:
sqlite3.OperationalError: unable to open database file
Jede Hilfe ist willkommen,
Andrew
Lösung
Ich glaube nicht, dass Sie einen vollständigen Windows-Pfad verwenden können Ihre SQLite-Datenbank zuzugreifen. Ich habe einige Tests hier und der einzige Weg, betreibe ich eine sqlite3 Datenbank auf django nicht im selben Verzeichnis des Projekts DATABASE_NAME wurde mit nutzen konnte = ‚../anotherfolder/db.db‘ (dies bei C wurde: \ anotherfolder \ und Projekt wurde in c: \ mydjangoproject)
Andere Tipps
Ich weiß, diese Frage hat bereits eine akzeptierte Antwort, aber ich glaube, Sie etwas verpasst. Sie sollten rohe Strings verwenden, wenn die Saiten Schrägstriche enthalten:
DATABASE_NAME = r'C:\Software\Sqlite\databases\blog.db'
Dies ist, was passiert, wenn Sie keine rohe Zeichenfolge verwenden:
>>> print 'C:\Software\Sqlite\databases\blog.db'
C:\Software\Sqlite\databaselog.db
Eine Vermutung ist, dass die Datei in diesem Verzeichnis tatsächlich nicht ist. Wenn Sie UAC windows 7 aktiviert haben wird es so aussehen, wie die Datei an dieser Stelle ist (es im Windows Explorer angezeigt wird). Allerdings wird die Datei wirklich gespeichert in c. \ Users \ ihrbenutzername \ AppData \ Local \ Virtuals \ Software \ SQLite \ Datenbanken oder eine ähnliche Lage
Haben Sie einen Blick auf die Berechtigungen des Ordners. Kann Ihre normale Benutzer bearbeiten Dateien dort?
Kehren Sie die Schrägstriche in DATABASE_NAME:
von C:\Software\Sqlite\databases\blog.db
zu
C:/Software/Sqlite/databases/blog.db
Ich bin mit django 1.4 auf Win7 und dies war die Lösung für mich - die Datei muss nicht existiert bereits
Umkehrung der Schrägstriche in der Datenbank Namen löste das Problem für mich.