2009-11-26 5 views
2

Je suivais le tutoriel sur le site django, que je previsouly ai fait avec Windows XP et tout est bien passé, mais sur Windows 7 j'obtiens l'erreur suivante:Comment puis-je utiliser SQLite avec DJANGO sur WIndows 7

sqlite3.OperationalError: unable to open database file 

-je utiliser les éléments suivants:

python manage.py sql Blog 

Est-ce que quelqu'un a des idées ce qui pourrait être mal. Le fichier de base de données est situé dans C:\Software\Sqlite\Databases\Blog.db

Et la settings.py relative ou section est simplement:

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 

J'ai aussi à des fins de test ajouté tout le monde avec les autorisations.

Mais comme je dis que je reçois l'erreur suivante:

sqlite3.OperationalError: unable to open database file 

Toute aide est appréciée,

Andrew

+0

Est-ce que le nom de fichier Blog.db ou blog.db? Un cas incohérent pourrait faire foirer les choses. Je suis sur Win7 et cela a parfaitement fonctionné au premier essai. –

Répondre

2

Je ne pense pas que vous pouvez utiliser un chemin complet de Windows pour accéder à votre base de données sqlite. J'ai effectué quelques tests ici et la seule façon d'utiliser une base de données sqlite3 sur django ne se trouvant pas dans le même répertoire que le projet était d'utiliser DATABASE_NAME = '../anotherfolder/db.db' (c'était situé dans c: \ anotherfolder \ et le projet se trouvait à c: \ mydjangoproject)

+0

Cela l'a eu. Je vous remercie. –

0

Une estimation est que le fichier est en fait pas dans ce répertoire. Si vous avez activé UAC, Windows 7 donnera l'impression que le fichier se trouve à cet emplacement (il apparaîtra dans Windows Explorer). Cependant, le fichier est vraiment stocké dans c: \ users \ votre nom d'utilisateur \ AppData \ Local \ VirtualStore \ Software \ Sqlite \ bases de données ou un emplacement similaire.

+0

merci. Il est définitivement dans le répertoire C: \ Software \ Sqlite \ –

0

Jetez un oeil sur les autorisations du dossier. Est-ce que votre utilisateur régulier peut éditer des fichiers là-bas?

9

Je sais que cette question a déjà une réponse acceptée, mais je pense que vous avez manqué quelque chose. Vous devez utiliser des chaînes premières lorsque vos chaînes de barres obliques inversées:

DATABASE_NAME = r'C:\Software\Sqlite\databases\blog.db' 

C'est ce qui se passe si vous n'utilisez pas une chaîne brute:

>>> print 'C:\Software\Sqlite\databases\blog.db' 
C:\Software\Sqlite\databaselog.db 
0

Inverser les barres obliques dans DATABASE_NAME: de C:\Software\Sqlite\databases\blog.db à C:/Software/Sqlite/databases/blog.db

J'utilise django 1.4 sur Win7 et ce fut la solution pour moi - le fichier n'a pas besoin d'exister déjà

0

L'inversion des barres obliques dans le nom de la base de données m'a permis de résoudre le problème.