python - 向数据库添加新模型实例时 Django 中的 ProgrammingError,可能出了什么问题?

标签 python django postgresql database-migration

使用 Django 管理面板时,我可以向用户和组添加新实例。我所有的应用程序都一样,除了一个。每当我尝试添加新模型时,resultregistration 这个应用程序总是给我一个 ProgrammingError。例如,此应用程序有一个竞赛模型,其中应存储有关体育比赛的数据。

当我点击“+ 添加”时,我被带到了可以添加新比赛的正确站点。但是,当我按下保存时,我得到:

/admin/resultregistration/competition/add/处的编程错误

关系“resultregistration_competition”的列“competition_category”不存在 第 1 行:插入“resultregistration_competition”(“competition_c ...

当然,我假设迁移有问题。但是,我已经运行了 python manage.py makemigrations appname 和 python manage.py migrate appname,并且运行良好。我收到一条消息,指出“未检测到任何更改”和“没有要应用的迁移”。

我已经尝试过发布在 SO 上的解决方案,但没有一个有效。

此错误的一般原因是什么?有谁知道在这种特定情况下可能出了什么问题?如果模型中定义错误,是否会出现此错误?还是一定是迁移问题?

非常感谢!任何帮助将不胜感激。另外,如果有帮助的话,我正在使用 PostgreSQL。

最佳答案

  • 确保您在该特定应用程序的迁移文件夹下有 _ init _.py 文件。
  • 如果您的 models.py 中有任何更改,运行 manage.py makemigrations 总是会生成一个迁移文件

如果没有任何效果并且您的数据库中没有太多数据,最终解决方案是删除该应用程序或项目的所有迁移文件(如果有),在终端中输入“sudo -su postgres”,然后输入“psql” .

删除您的数据库并创建一个新数据库。运行 manage.py makemigrations 检查迁移文件是否已经创建。然后用 manage.py migrate 迁移

关于python - 向数据库添加新模型实例时 Django 中的 ProgrammingError,可能出了什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46828251/

相关文章:

python - 使用自定义 POS 标签进行 NLTK 分块?

python - Matplotlib 中 3-D 散点图中的 z 轴缩放和限制

django-compressor + less 压缩文件但链接到原始文件

postgresql - 如何在不使用函数的情况下使用 string_agg 更新值?

postgresql - 到我的docker postgres数据库容器的连接数开始于11?

postgresql - 如何增加 Google Cloud SQL Postgres 数据库的连接限制?

Python分布式/网络网络应用程序

python - 向系列添加元素时出现问题

python - 如何在本地 Django 环境中提供媒体文件?

django - 为什么 drf-extensions CacheResponseMixin 不缓存?