【问题标题】:Django - relation "app_name_modelname" does not existDjango - 关系“app_name_modelname”不存在
【发布时间】:2020-12-12 20:13:31
【问题描述】:

我已将我的应用程序部署到 DigitalOcean。除了这种情况,一切正常。我添加了新的GeneralComplaintDocument 模型,在本地进行了迁移,从 Github 上提取了 DigitalOcean 服务器上项目的最新版本,删除了所有迁移文件,再次迁移,但仍然出现此错误:

relation "documents_app_generalcomplaintdocument" does not exist
LINE 1: INSERT INTO "documents_app_generalcomplaintdocument"

models.py:

class Document(models.Model):
    created_date = models.DateTimeField(default=timezone.now)
    added_by = CurrentUserField()


class GeneralComplaintDocument(Document):
    complaint_reason = models.CharField(max_length=500)
    result = models.CharField(max_length=500)

    def __str__(self):
        return self.complaint_reason

P.S:在本地服务器上一切正常。

【问题讨论】:

  • 为什么要删除所有迁移文件?你在你的 Digital Ocean 服务器上运行了./manage.py migrate 吗?
  • 请添加您的型号
  • @Charlesthk,是的,我做到了...
  • @RiyasAc,准备好了
  • 好的,你为什么删除所有迁移文件?

标签: django digital-ocean django-postgresql django-deployment


【解决方案1】:

我建议做这样的事情: 首先删除应用程序中的所有迁移文件(documents_app),然后在数据库中执行以下 SQL 查询。这里我们假设你的 app_name 是documents_app

delete FROM "django_migrations" WHERE "app" = 'documents_app';

然后迁移,

python manage.py makemigrations documents_app
python manage.py migrate documents_app

【讨论】:

  • 我发现了错误。在我的数据库中没有“GeneralComplaintDocument”表。我不知道为什么它在迁移后没有添加...
  • 问题是你删除了现有的表。
猜你喜欢
  • 2017-07-05
  • 2019-08-02
  • 2016-01-05
  • 2020-04-09
  • 2014-07-18
  • 1970-01-01
  • 2018-07-16
  • 2017-07-01
  • 2019-02-04
相关资源
最近更新 更多