python database django sqlite django-settings

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



database django (6)

En mi caso, el archivo sqlite db db.sqlite3 se almacenó en el DocumentRoot de apache. Entonces, incluso después de establecer 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 nueva creada dbfolder bajo DocumentRoot y di los permisos anteriores, y funcionó.

Me aparece este error al configurar un servidor en Django. Es sqlite3, lo que significa que debe crear el archivo .db, pero parece que no lo está haciendo. He estipulado SQLite como back-end y una ruta de archivo absoluta para dónde colocarlo, pero no tuve suerte.

¿Es esto un error o estoy haciendo algo incorrecto? (Simplemente 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'', ''[email protected]''), ) 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. } }


Me enfrenté exactamente al 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á la misma / predeterminada.
Y necesita crear data.sqlite3.


Necesita usar la ruta completa en lugar de ~/ .

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


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


usa este tipo, funciona para mi Windows 7 con python 2.7 y django 1.5

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

espero que funcione ...


Django NewbieMistakes

PROBLEMA Estás utilizando SQLite3, tu DATABASE_NAME está configurada en la ruta completa del archivo de la base de datos, el archivo de la base de datos es editable por Apache, pero sigues recibiendo 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 el número, ej. / www / 4myweb / db (observado en Windows 2000).

Si DATABASE_NAME está configurado para algo como ''/ Users / yourname / Sites / mydjangoproject / db / db'', asegúrese de haber creado primero el directorio ''db''.

Asegúrese de que su directorio / tmp sea escribible 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é.