【问题标题】:Django project using wrong (old) database settings使用错误(旧)数据库设置的 Django 项目
【发布时间】:2012-02-05 01:09:13
【问题描述】:

最近我开始了一个小型 Django 项目,我使用 SQLite3 数据库和集成开发服务器在本地机器上开发该项目。我现在将整个项目复制到运行 Debian 的服务器上。

只要我继续使用 SQLite3 数据库,一切都运行良好。现在我想切换到本地 MySQL 数据库,所以我更改了项目根文件夹中的 settings.py 文件,创建了数据库并添加了一个用户。然后我运行了syncdb,它毫无问题地创建了所需的表。

现在我想使用该应用程序,但我不断收到错误,因为 Django 找不到表——既不是像 django_sessions 这样的“标准表”,也不是我自己的表——即使它们在那里(我检查了数据库)。

我得到的 DatabaseError 页面看起来很尴尬的一件事是以下行:

Exception Location: /usr/local/lib/python2.6/dist-packages/django/db/backends/sqlite3/base.py in execute, line 234

似乎 Django 仍在使用 SQLite3 后端,即使我将它设置为使用 MySQL 后端。

另一件几乎让我抓狂的事情是:我使用 rm 删除了我的应用程序根文件夹中的 data.sqlite 文件。但是当我使用我的应用程序时,正在重新创建文件!

谁能告诉我哪里出错了?

【问题讨论】:

  • 你有settings.pyc文件吗?
  • 是的,我已经删除了两次。但这并没有改变什么。
  • 你有local_settings.py文件吗?
  • 如果之前没有重启服务器,请尝试重启。

标签: python mysql django sqlite


【解决方案1】:

当使用 mod_wsgi 或 mod_python 在生产环境中运行时,在您重新加载/重新启动网络服务器之前不会合并新代码。

如果你使用 apache 和 mod_wsgi,你也可以touchwsgi.py 文件只重启 python 代码。

【讨论】:

    【解决方案2】:

    如果在 apache 上运行,则每次进行更改时运行“sudo /etc/init.d/apache2 reload”。

    【讨论】:

      猜你喜欢
      • 2018-02-19
      • 2015-02-16
      • 2017-12-31
      • 2012-09-24
      • 2019-10-13
      • 2023-03-06
      • 2014-09-12
      • 2010-10-15
      • 1970-01-01
      相关资源
      最近更新 更多