当前位置:  开发笔记 > 后端 > 正文

Django"无法打开数据库文件"

如何解决《Django"无法打开数据库文件"》经验,为你挑选了2个好方法。

运行"python manage.py syncdb"后,我得到一个错误,说"无法打开数据库文件".

这是我的settings.py的重要部分:

DATABASE_ENGINE = 'sqlite3'    # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
DATABASE_NAME = 'apps.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 sqlite3.

这是"apps.db"的权限:

-rw-r--r-- 1 root root 33792 19. Jul 10:51 apps.db

我的django服务器是从apache调用的......我不知道它是否与权限有关,但是将apps.db的所有者更改为"www-data"也不起作用

[编辑]

为了确保www-data可以访问所有这些我做了以下事情:

做了以下事情:

chown -R www-data apps
rm apps.db
su www-data
python manage.py syncdb

但它仍然无法正常工作:(



1> Shwetabh Sha..:

来自NewbieMistakes的解决方案

确保Apache也可以写入数据库的父目录.SQLite需要能够写入此目录.

确保数据库文件的完整路径中的每个文件夹都不以数字开头,例如./ www/4myweb/db(在Windows 2000上观察).

如果将DATABASE_NAME设置为'/ Users/yourname/Sites/mydjangoproject/db/db',请确保首先创建了'db'目录.

确保您的/ tmp目录是全局可写的(这是不太可能的原因,因为系统上的其他内容也不起作用).ls/tmp -ald应该生成drwxrwxrwt ....

确保在settings.py中指定的数据库路径是完整路径.


父目录权限不明显(对我而言); 谢谢.

2> niklasfi..:

我通过将DATABASE_NAME更改为绝对路径来解决错误:/var/www/apps/apps.db.

在Windows机器上,反斜杠应该像:C:\\path\\to\\database\\database_name.db.

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有