Question

Je suis le tutoriel sur le site DJango, ce que je faisais auparavant avec Windows XP et tout s'est bien passé, mais sur Windows 7, l'erreur suivante s'affiche:

sqlite3.OperationalError: unable to open database file

J'utilise les éléments suivants:

python manage.py sql Blog

Quelqu'un at-il une idée de ce qui pourrait ne pas être correct? Le fichier de base de données se trouve dans C: \ Software \ Sqlite \ Databases \ Blog.db

.

Et la section settings.py relative 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 également ajouté tout le monde avec des autorisations complètes à des fins de test.

Mais comme je le dis, j'obtiens l'erreur suivante:

<*>

Toute aide est appréciée,

Andrew

Était-ce utile?

La solution

Je ne pense pas que vous puissiez utiliser un chemin d'accès Windows complet 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 qui ne se trouve pas dans le même répertoire du projet était d'utiliser DATABASE_NAME = '../anotherfolder/db.db' (situé à l'emplacement c: \ anotherfolder \ et le projet était situé dans c: \ mydjangoproject)

Autres conseils

Je sais que cette question a déjà été acceptée, mais je pense que vous avez oublié quelque chose. Vous devez utiliser des chaînes brutes lorsque vos chaînes contiennent des barres obliques inverses:

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

Voici ce qui se passe si vous n'utilisez pas de chaîne brute:

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

Une hypothèse est que le fichier n'est pas dans ce répertoire. Si vous avez activé le contrôle de compte d'utilisateur, Windows 7 donne l'impression que le fichier se trouve à cet emplacement (il apparaît dans l'explorateur Windows). Cependant, le fichier est réellement stocké dans les bases de données c: \ utilisateurs \ votre nom d'utilisateur \ AppData \ Local \ VirtualStore \ Software \ Sqlite \ ou à un emplacement similaire.

Consultez les autorisations du dossier. Votre utilisateur habituel peut-il éditer des fichiers là-bas?

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 c'était la solution pour moi - le fichier n'a pas besoin d'exister déjà

Inverser les barres obliques dans le nom de la base de données a résolu le problème pour moi.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top