Django 站点初始数据库迁移期间的奇怪错误

Strange error during initial database migration of a Django site

我已经在我的 Django 网站的本地主机副本上工作了一段时间,但最终决定是时候将它上传到 PythonAnywhere 了。该网站在我的本地主机上运行良好,但在为新网站进行初始迁移时出现奇怪的错误。例如,我得到这个:

mysql.connector.errors.DatabaseError: 1264: Out of range value for column 'applied' at row 1

'applied' 不是我模型中的字段,所以这个错误必须由 Django 生成 tables 供自己使用。我刚刚检查了本地主机的 MySQL 管理器,字段 'applied' 似乎来自 table django_migrations。

为什么 Django 错误处理设置 tables 供自己使用?我已经多次删除并重新创建数据库,但错误仍然存​​在。如果有人知道什么会导致这种情况,我将非常感谢您的建议。

我的网站前端仍然显示 Hello World 页面,管理员 link 出现页面不存在错误。在这个阶段,我假设这与数据库错误有关。

编辑:有关我无法访问网站前端的原因的其他信息:

事实证明,当我将预建站点导入 PythonAnywhere 时,我必须编辑我的 wsgi.py 文件以指向该应用程序。现在的麻烦是我不知道到底该放什么。当我按照 PythonAnywhere 帮助文件中的标准说明进行操作时,似乎没有任何变化。该网站似乎也没有详细的错误消息来帮助解决问题。是否有办法关闭他们的标准 hello world 占位符页面并改为查看服务器错误消息?

正如我在上面的评论中所说,事实证明数据库的问题是由于 运行 将 Django 从 1.8 升级到 1.9。我忘记了这件事。将我的网站回滚到 Django 1.8 后,数据库迁移 运行 正确。

我无法访问网站的原因原来是因为我必须编辑wsgi.py文件,但我编辑的是错误的版本。我使用的 nginx localhost Web 服务器将它保存在与 PythonAnyhwere 的实现不同的文件夹位置。我从我的本地主机副本上传了文件,并根据 PythonAnywhere 帮助系统上的说明对其进行了编辑,但没有意识到它没有被 PythonAnywhere 的服务器读取。我真正需要做的是通过他们控制面板上的网络选项卡访问它来编辑正确的文件。一旦我编辑了这个文件,网站前端就开始按预期工作了。

我在 1.10 版本的全新项目中也遇到了这个问题。我发现如果您使用 recommended driver and the connector in the documentation,迁移工作没有问题。

如果您不想阅读文档,简而言之:

  1. 为 python 2.7 安装 MySQLdb 或为 python 3.3+
  2. 安装 mysqlclient
  3. 修改您的 settings.py 文件。在DATABASES字典中设置:

    'ENGINE': 'django.db.backends.mysql',