2011-01-02 4 views
0

Ich bin auf Kapitel 5 des django Buchs und versuchen zu gehen, aber ich bin auf einem Teil stecken:Django Buch Frage: Datenbankkonfigurationsproblem. Operative Fehler beim Abruf

Link zu genauen Kapiteln: http://www.djangobook.com/en/2.0/chapter05/

Problem: Testen Datenbankkonfigurationen

Als ich:

  1. Run python manage.py Schalenform im mysite Projektverzeichnis
  2. dann in der Schale dieser Art Befehle Datenbankkonfiguration
from django.db import connection 
cursor = connection.cursor() 

Ich erhalte den folgenden Fehler zu testen, wenn ich alle oben genannten tun:

"OperationalError: unable to open database file"

sollte ich eine Art von Datei in das neue Verzeichnis erstellen oder Ordner, den ich erstellt habe, heißt "MyDB". Wenn ja, wie mache ich das?

Unten ist, wie meine DB-Konfigurationen eingestellt werden:

Konfigurationen:

DATABASES = { 

    'default': { 
     'ENGINE': 'sqlite3',    
     'NAME': 'C:/Python27/MyDB',  
     'USER': '',      
     'PASSWORD': '',     
     'HOST': '',      
     'PORT': '',      
    } 

Antwort

0

Meine erste Vermutung ist Berechtigungsfehler. Welche Berechtigungen gelten für das Python27-Verzeichnis und entsprechen sie den Berechtigungen, unter denen Sie den Befehl python manage ausführen?

Ich normalerweise die Datenbank in das Projektverzeichnis, nicht das Python-Verzeichnis.

+0

fauxtrot, danke für deine Antwort. Meinst du das für den Administrator? Wenn ja, sind meine Berechtigungen erlaubt (markiert) für: volle Kontrolle, ändern, lesen und ausführen, Ordnerinhalt auflisten, lesen, schreiben. Die einzige Sache, die nicht überprüft wird, ist spezielle Erlaubnis. Was meinen Sie mit "Entsprechen sie den Berechtigungen, von denen aus Sie den Befehl python manage ausführen?" Gibt es einen anderen Ordner, für den ich die Berechtigungen überprüfen muss? Ich habe mein Datenbankverzeichnis wie gewohnt in meinem Projektordner abgelegt. Nicht sicher, ich muss jetzt auch die Berechtigungen im Projektordner überprüfen. – j5r

+0

Ich meine im Wesentlichen: Wenn Ihr Python27-Verzeichnis nur Administratorrechte ist, werden Sie es schwer haben, Dateien (sqlite3-Treiber) zu erstellen, wenn Sie den Befehl von einem Nicht-Administrator-Befehlsfenster ausführen. –

0

Sie verwenden sqlite, das eine Datenbank als Datei erstellt. Von dem, was Sie in der Frage gesagt haben, ist der Wert NAME in Ihrer Datenbankeinstellung 'C:/Python27/MyDB', was auf ein Verzeichnis zeigt. Setzen Sie diesen Wert auf 'C:/Python27/MyDB/mydb.db' oder etwas Ähnliches. Sie müssen die Datei nicht wirklich erstellen, Django macht das für Sie, wenn Sie manage.py syncdb ausführen.