我基本上遇到了本文中描述的相同错误,但该解决方案对我不起作用,因为我认为我的根本原因不同。
我绝对定义了我的数据库路径:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
'NAME': '/var/www/myapp/database.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_session。
当我运行时manage.py runserver
,我没有收到错误。
我做了一些其他的事情只是为了尝试任何事情,但没有帮助:
- manage.py 重置会话
- 我删除了数据库并让它用syncdb重新创建
- 我尝试了 chown apache:apache database.db 以及父目录 chown -R apache:apache myapp/
- 我试过 chmod 777 database.db
我的 apache 配置如下所示:
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /var/www/html/
</VirtualHost>
<VirtualHost *:80>
ServerName myserver.mydomain.local
ServerAlias myserver.mydomain.local
DocumentRoot /var/www/myapp
WSGIScriptAlias / /var/www/myapp/myapp/wsgi.py
<Directory "/var/www/myapp/">
Allow from all
</Directory>
</VirtualHost>
我写 /myapp 两次的原因是因为第一个只包含 DB 文件和 manage.py。该文件夹下包含应用程序,包括 wsgi.py
我还注意到,我必须在我的 wsgi.py 中添加两行以使其在 Apache 上运行,从 manage.py 运行应用程序时我不必添加:
import sys
sys.path.append(os.path.abspath(os.path.dirname(__file__) + "/../"))