【发布时间】:2021-07-30 11:40:20
【问题描述】:
我在开发过程中使用了 sqlite3,然后将我的数据库设置更改为 postgresql:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'test2',
'USER': 'postgres',
'PASSWORD': 'aman',
'HOST': 'localhost',
'PORT': '5432',
}
}
不管我写什么命令,它都会给我错误:
django.db.utils.ProgrammingError: relation "taksist_category" does not exist
LINE 1: ...st_category"."id", "taksist_category"."name" FROM "taksist_c...
类别模型存在于 taksist 应用程序中。如果我将我的数据库设置恢复到 sqlite3,那么应用程序将成功运行。
我什至无法运行我的服务器。即使我的模型 taksist/Category 有问题,我的应用程序也应该运行。这里奇怪的是无论写什么命令,我都会收到这个错误。我无法进行 makemigrations、migrate、runserver。
我做了什么来解决这个问题:
- 已删除迁移文件夹,并尝试 makemigrations
- 我创建了带有 init.py 的空迁移文件夹,并且 尝试 makemigrations
- python manage.py migrate --fake
以上都不起作用。
这里是 taksist.category 模型,以防万一。
class Category(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length = 20)
def __str__(self):
return self.name
感谢您的任何帮助。提前谢谢你。
【问题讨论】:
-
检查了我的型号名称,它在任何地方都是正确的,检查 INSTALLED_APPS,有我的应用程序名称。正如我所说,如果我将数据库设置更改为 sqlite3,那么一切正常。我可以注册新用户,并从数据库中获取信息。但是在切换到 postgreql 之后就会发生这个错误。如果我的代码中有错字,那么它也不应该与 sqlite3 一起使用,但它可以与 sqlite3 一起使用
-
你跑了吗
python manage.py migrate -
无论我执行什么命令,我都会收到此错误。甚至 runserver、makemigrations 和 migrate。将数据库设置更改为 postgresql 后,我无法迁移。我什么都做不了。
标签: python django postgresql