问题:为什么我不能打开数据库?
信息:我正在开发一个目的不重要但使用sqlite3数据库的项目.我制作了一个测试程序,它运行并传递给它创建数据库的位置:
sqlite3
单元测试程序可以使db没问题.然后,我实际上使用该程序,将相同的位置传递给它,它说
OperationalError:无法打开数据库文件
我尝试过使用空数据库.与数据库单元测试留下,没有数据库.在所有三种情况下,我都会收到此错误.最令人沮丧的部分必须是单元测试可以做得很好,但实际的程序不能.
关于到底发生了什么的任何线索?
我正在使用Django开发一个网站.当我通过命令提示符运行服务器时,如下所示:
python manage.py runserver
Run Code Online (Sandbox Code Playgroud)
它运行正常,但是当我从Eclipse(右键单击项目 - > Run As...- >)时django project,我收到以下错误:
DatabaseError at/
no这样的表:django_session
请求方法:GET
请求URL: http:// localhost:8000 /
Django版本:1.3
异常类型:DatabaseError
异常值:
没有这样的表:django_session
关于什么可以导致这个的任何想法?我不是那么精通django所以我不知道哪个文件可能导致这个 - 如果你需要我发帖,请在评论中询问.
我现在不知道为什么,但是当我试图进行测试时,从一天到另一天我开始遇到问题.我正在使用django 1.1(客户要求),当我运行测试时:
python manage.py test --setting=settingsTest
Run Code Online (Sandbox Code Playgroud)
抛出:
Traceback (most recent call last):
File "manage.py", line 11, in <module>
execute_manager(settings)
File "/usr/lib/pymodules/python2.6/django/core/management/__init__.py", line 362, in execute_manager
...
File "/usr/lib/pymodules/python2.6/django/db/backends/sqlite3/base.py", line 193, in execute
return Database.Cursor.execute(self, query, params)
sqlite3.OperationalError: no such table: programas_act_actividadesprograma
Run Code Online (Sandbox Code Playgroud)
但我有settingsTest.py
INSTALLED_APPS = (
'django.contrib.auth',
...
'site.programas_act',
...
)
Run Code Online (Sandbox Code Playgroud)
在/var/www/site/programas_act/models.py中
class ActividadesPrograma(models.Model):
...
Run Code Online (Sandbox Code Playgroud)
我删除了settingsTest.DATABASE_NAME中指定的文件并运行:
python manage.py syncdb --setting=settingsTest
Run Code Online (Sandbox Code Playgroud)
但仍然失败.
如果我在django shell_plus中运行:
import settings
print settings.INSTALLED_APPS
for app in settings.INSTALLED_APPS:
print app
Run Code Online (Sandbox Code Playgroud)
我可以看到该应用程序,但是当我运行时:
from django.db import connection
cursor = connection.cursor() …Run Code Online (Sandbox Code Playgroud)