【问题标题】:Django: Unknown column error when running on production serverDjango:在生产服务器上运行时出现未知列错误
【发布时间】:2022-01-20 09:43:05
【问题描述】:

当我尝试访问生产服务器 (AWS EBS) 上的 Django 应用程序时,它不断返回以下错误 (1054, "Unknown column 'two_factor_phonedevice.throttling_failure_timestamp' in 'field list'")

奇怪的是,当使用完全相同的 MYSQL 数据库 (AWS RDS) 和设置在本地运行时,该应用程序运行良好。 我曾尝试删除数据库并重新运行迁移,认为这是由于我的 db 和迁移文件之间存在不一致,但我仍然遇到同样的错误。

我正在使用django_two_authentication 模块进行用户身份验证/登录。表two_factor_phonedevice由模块创建,用于跟踪注册双重身份验证的用户设备。

我似乎无法解决为什么在本地运行时可以找到该列,但在生产服务器上却找不到该列,尽管它们都使用相同的数据库。

【问题讨论】:

  • 看起来您在本地和生产中使用不同版本的包。在两种环境中检查 pip list 中的版本。
  • 确实是这个问题。

标签: python django amazon-web-services


【解决方案1】:

我不熟悉django_two_authentication,但我会检查您在每个环境中使用的不同设置模块。 您可能在INSTALLED_APPS 或其他一些相关条目中存在差异。

【讨论】:

  • 我对本地服务器和生产服务器使用了相同的设置,但仍然遇到错误..
【解决方案2】:

原来在生产 requirements.txt 文件中没有指定模块版本,这意味着默认安装了最新版本(碰巧有不同的数据库架构),导致不同版本在本地和生产环境中运行。

为了解决这个问题,我在 requirements.txt 文件中明确设置了模块版本以匹配本地版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-19
    • 2017-05-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多