首页 > 解决方案 > Django - 关系“app_name_modelname”不存在

问题描述

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

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

模型.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

PS:在本地服务器上一切正常。

标签: djangodigital-oceandjango-postgresqldjango-deployment

解决方案


我建议这样做:首先删除您的应用程序(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

推荐阅读