sqlite3.OperationalError: no se puede abrir el archivo de base de datos

Recibo este error al configurar un servidor en Django. Es sqlite3, lo que significa que debe crear el archivo .db pero no parece estarlo. He estipulado SQLite como el backend y una ruta de archivo absoluta para donde colocarlo, pero no tengo suerte.

¿Es esto un error o estoy haciendo algo incorrecto? (Estaba pensando, ¿la ruta absoluta del archivo se especifica de manera diferente en Ubuntu?)

Aquí está el comienzo de mi archivo settings.py:

# Django settings for OmniCloud project. DEBUG = True TEMPLATE_DEBUG = DEBUG ADMINS = ( # ('Your Name', 'your_email@example.com'), ) MANAGERS = ADMINS DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. 'NAME': '~/Harold-Server/OmniCloud.db', # Or path to database file if using sqlite3. 'USER': '', # Not used with sqlite3. 'PASSWORD': '', # Not used with sqlite3. 'HOST': '', # Set to empty string for localhost. Not used with sqlite3. 'PORT': '', # Set to empty string for default. Not used with sqlite3. } } 

Django Newbie Errores

PROBLEMA Estás utilizando SQLite3, tu DATABASE_NAME se configura en la ruta completa del archivo de la base de datos, el archivo de la base de datos se puede escribir en Apache, pero aún obtienes el error anterior.

SOLUCIÓN Asegúrese de que Apache también pueda escribir en el directorio principal de la base de datos. SQLite necesita poder escribir en este directorio.

Asegúrese de que cada carpeta de la ruta completa de su archivo de base de datos no comience con un número, por ejemplo. / www / 4myweb / db (observado en Windows 2000).

Si DATABASE_NAME se establece en algo como ‘/ Users / yourname / Sites / mydjangoproject / db / db’, asegúrese de haber creado primero el directorio ‘db’.

Asegúrese de que su directorio / tmp se pueda escribir en todo el mundo (una causa poco probable ya que otra cosa en su sistema tampoco funcionará). ls / tmp -ald debería producir drwxrwxrwt ….

Asegúrese de que la ruta a la base de datos especificada en settings.py sea una ruta completa.

También asegúrese de que el archivo esté presente donde espera que esté.

Me enfrenté exactamente el mismo problema. Aquí está mi configuración que funcionó.

 'ENGINE': 'django.db.backends.sqlite3', 'NAME': '/home/path/to/your/db/data.sqlite3' 

Otra configuración en caso de sqlite3 será igual / por defecto.
Y necesitas crear data.sqlite3.

No ha especificado la ruta absoluta; ha utilizado un acceso directo, ~ , que podría no funcionar en este contexto. Use /home/yourusername/Harold-Server/OmniCloud.db en /home/yourusername/Harold-Server/OmniCloud.db lugar.

Necesitas usar la ruta completa en lugar de ~/ .

En su caso, algo como /home/harold/Harold-Server/OmniCloud.db .

En mi caso, el archivo db.sqlite3 db sqlite se almacenó en el DocumentRoot de apache. Entonces, incluso después de configurar los siguientes permisos no funcionó:

 sudo chown www-data:www-data /path/to/db-folder sudo chown www-data:www-data /path/to/db-folder/sqlite-db.db 

Finalmente, cuando moví db.sqlite3 a una carpeta de dbfolder recién creada en DocumentRoot y di los permisos anteriores, y funcionó.

Usa este tipo que me funciona. Windows 7 con Python 2.7 y Django 1.5

 'ENGINE': 'django.db.backends.sqlite3', 'NAME': 'C:\\tool\\mysite\\data.db', 

espero que funcione …