【发布时间】:2011-03-17 20:48:22
【问题描述】:
运行“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
但是还是不行:(
【问题讨论】:
-
确保 www-data 可以通过整个路径到达您的 db,而不仅仅是读取/写入 db 文件。
标签: database django sqlite django-models django-admin