Pregunta

Sigo el tutorial en el sitio de DJango, que previsiblemente usé Windows XP y todo salió bien, pero en Windows 7 obtengo el siguiente error:

sqlite3.OperationalError: unable to open database file

Uso lo siguiente:

python manage.py sql Blog

¿Alguien tiene alguna idea de lo que podría estar mal? El archivo de la base de datos se encuentra en C:\Software\Sqlite\Databases\Blog.db

Y la configuración relativa.py o sección de es simplemente:

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

También, con fines de prueba, he agregado a todos con permisos completos.

Pero como digo, recibo el siguiente error:

<*>

Cualquier ayuda es apreciada,

Andrew

¿Fue útil?

Solución

No creo que pueda usar una ruta de Windows completa para acceder a su base de datos sqlite. He ejecutado algunas pruebas aquí y la única forma en que podía usar una base de datos sqlite3 en django no en el mismo directorio del proyecto era usando DATABASE_NAME = '../anotherfolder/db.db' (esto estaba ubicado en c: \ anotherfolder \ y el proyecto se encuentra en c: \ mydjangoproject)

Otros consejos

Sé que esta pregunta ya tiene una respuesta aceptada, pero creo que te perdiste algo. Debería usar cadenas sin formato cuando sus cadenas contengan barras diagonales inversas:

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

Esto es lo que sucede si no usas una cadena en bruto:

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

Una suposición es que el archivo no está en ese directorio. Si tienes UAC habilitado, Windows 7 hará que parezca que el archivo está en esa ubicación (se mostrará en Windows Explorer). Sin embargo, el archivo realmente se almacena en c: \ users \ yourusername \ AppData \ Local \ VirtualStore \ Software \ Sqlite \ database o en una ubicación similar.

Echa un vistazo a los permisos de la carpeta. ¿Puede su usuario regular editar archivos allí?

Invierta las barras diagonales en DATABASE_NAME: desde C: \ Software \ Sqlite \ database \ blog.db hasta C:/Software/Sqlite/databases/blog.db

Estoy usando django 1.4 en Win7 y esta fue la solución para mí, ya no es necesario que el archivo exista

Invertir las barras diagonales en el nombre de la base de datos solucionó el problema por mí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top