psycopg2错误:UndefinedTable:关系“authentication_author”不存在:Django v4

3
我尝试在我的Django项目中使用Postgresql代替sqlite。我在Windows上安装了Postgresql,创建了一个新的数据库、用户和密码。
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'database_name',
        'USER': 'admin',
        'PASSWORD': 'admin',
        'HOST': 'localhost',
        'PORT': '5432',
    }
}

但是当我尝试迁移或进行makemigrations时,我会遇到以下问题:

文件"C:\Users\s...\venv\lib\site-packages\django\db\backends\utils.py"的第85行,_execute函数中, 返回self.cursor.execute(sql, params)。psycopg2.errors.UndefinedTable:关系"authentication_author"不存在。第1行:..."authentication_author"."is_doctor" FROM"authentic...

这是我的模型:

class Author(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE, null=True, related_name="author")
    slug = models.CharField(max_length=50, null=True, blank=True,)
    is_doctor = models.BooleanField(default=False)

是的,我删除了sqlite3数据库、所有迁移文件夹,并创建了包含init.py的新文件夹。

但仍然出现相同的问题。

更新: 追踪截图: second-error

first error


你能添加完整的回溯和“AuthenticationAuthor”模型的代码吗? - Yevgeniy Kosmak
你正在使用PGAdmin 4吗?你执行了python manage.py makemigrations authentication然后迁移了吗?你能够使用psql和类似CMD的命令行连接到你的PSQL数据库吗?如果可以,你能够显示数据库和表吗?这只是一些想法。 - Jarad
1
@YevgeniyKosmak,Author模型属于认证应用程序。 - JawadMans
完整的回溯信息呢?我相信那里面会有答案。 - Yevgeniy Kosmak
@YevgeniyKosmak 我更新了问题,并附上了一些截图。 - JawadMans
显示剩余2条评论
1个回答

1

这种情况在Django中经常出现。有时候,在尝试进行makemigrations时,你需要调用一些依赖于新的数据库模式的代码。

在这种情况下,你只需要暂时注释掉所有连接makemigrations和你的新模型模式的代码即可。就像在这个问题中一样,你可以使用完整的回溯跟踪相关的代码块。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接