Django:没有这样的表:Apache下的django_session,但与manage.py runserver一起使用

时间:2012-06-25 19:09:14

标签: python django sqlite django-admin

我基本上得到了相同的错误described in this article,但解决方案对我不起作用,因为我认为我的根本原因是不同的。

我的数据库路径是绝对定义的:

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
  • 重新创建
  • 我尝试了chache 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__) + "/../"))

1 个答案:

答案 0 :(得分:-1)

我有完全相同的错误.....我的是一个Windows环境。 只需要将database.db文件复制并放在apache文件夹下。 你可以尝试做同样的事情,看看它是否有帮助。