【问题标题】:Django migration: django.db.utils.OperationalError: (1824, "Failed to open the referenced table 'classroom_user'")Django 迁移:django.db.utils.OperationalError: (1824, "Failed to open the referenced table 'classroom_user'")
【发布时间】:2021-12-07 17:04:47
【问题描述】:

我正在尝试将 Django 应用程序从开发服务器部署到生产服务器 我已经用 python 3.8.10 设置了一个 virtualenv,创建了 mysql 数据库,我在 virtualenv 中运行。我没有收到来自python manage.py check 的错误,运行python manage.py makemigrations 时得到“未检测到更改”,但是当我运行```python manage.py migrate`` 时,我得到以下信息:

要执行的操作:
应用所有迁移:管理员、身份验证、内容类型、会话
运行迁移:
正在应用 contenttypes.0001_initial... 确定
正在应用 admin.0001_initial...Traceback(最近一次调用最后一次):...

回溯的最后一行:

Django.db.utils.OperationalError: (1824, "Failed to open the referenced table 'classroom_user'")

(“classroom”是项目“codex”中应用程序的名称)我最近在我的开发服务器上重建了这个数据库中的所有表,没有任何问题。
生产服务器上的数据库为空。 models.py 已就位且完整。我已经尝试使用空的迁移文件夹和删除的迁移文件夹。迁移确实创建了 django_admin_log、django_content_types、django_migrations,但没有创建其他表。

我在这方面看到的所有其他帖子都是关于外键约束的,但是在我的 models.py 中,所有具有外键的表都在键所在的表之后指定。

【问题讨论】:

    标签: python mysql django django-migrations


    【解决方案1】:

    好的,解决了。
    使用稍旧版本的 Django(3.2.6 而不是 3.2.8)和在 Windows 服务器而不是 Linux 上,我能够得到不同的错误。这给了我一个关于我在其他帖子中看到的外键限制的错误,但这不是我以前见过的错误。

    我必须首先为我的应用执行迁移(其中教室是项目中的应用。):
    python manage.py makemigrations classroom
    python manage.py migrate

    【讨论】:

      猜你喜欢
      • 2021-10-15
      • 2022-12-01
      • 2020-03-23
      • 2015-12-07
      • 1970-01-01
      • 2012-09-22
      • 2017-03-29
      • 2015-11-30
      • 1970-01-01
      相关资源
      最近更新 更多