关系不存在-Django& Postgres [英] Relation does not exist - Django & Postgres
问题描述
我在现有模型中添加了一些表格,但是当我将项目推送到heroku时遇到了错误:
I added some table to an existant model, but I got an error when i push my project to heroku :
我在此特定应用程序上添加的任何模型
This happens to any models I add on this particular app
/ admin / dashboard / adressbook /
关系 dashboard_adressbook中的ProgrammingError不存在
第1行:从 dashboard_adressbook中以 __count的形式选择COUNT(*)
ProgrammingError at /admin/dashboard/adressbook/ relation "dashboard_adressbook" does not exist LINE 1: SELECT COUNT(*) AS "__count" FROM "dashboard_adressbook"
我的模型
class AdressBook(models.Model):
author = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name="Nom de l'utilisateur")
text = models.CharField(max_length=200,verbose_name="Description")
number = models.CharField(max_length=20,verbose_name="Numéro de téléphone")
def __str__(self):
return self.text
def get_absolute_url(self):
return reverse('dashboard-home')
class Dashboard(models.Model):
author = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name="Nom de l'utilisateur")
content = RichTextField(max_length=500,verbose_name="Description")
text = models.TextField(verbose_name="Description supplémentaire",null=True, blank=True)
date_posted = models.DateTimeField(default=timezone.now)
def __str__(self):
return self.content
def get_absolute_url(self):
return reverse('dashboard-home')
class Links(models.Model):
author = models.ForeignKey(User, on_delete=models.CASCADE,verbose_name="Nom de l'utilisateur")
content = models.URLField(max_length=500, verbose_name="URL")
name = models.CharField(max_length=500, verbose_name="Description")
def __str__(self):
return self.name
def get_absolute_url(self):
return reverse('dashboard-home')
class Todo(models.Model):
author = models.ForeignKey(User, on_delete=models.CASCADE,verbose_name="Nom de l'utilisateur")
text = models.CharField(max_length=150, verbose_name="Nom de la Todo")
content = RichTextField(verbose_name="Description supplémentaire",null=True, blank=True)
date_posted = models.DateTimeField(default=timezone.now)
complete = models.BooleanField(default=False, verbose_name="Statut de la Todo")
urgence = models.BooleanField(default=False,verbose_name="Tâche urgente")
def __str__(self):
return self.text
def get_absolute_url(self):
return reverse('dashboard-home')
class Phone(models.Model):
author = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name="Nom de l'utilisateur")
text = models.CharField(max_length=200,verbose_name="Description")
number = models.CharField(max_length=20,verbose_name="Numéro de téléphone")
def __str__(self):
return self.text
def get_absolute_url(self):
return reverse('dashboard-home')
跟踪:
Django Version: 2.1.7
Python Version: 3.6.7
Installed Applications:
['blog.apps.BlogConfig',
'dashboard.apps.DashboardConfig',
'property.apps.PropertyConfig',
'users.apps.UsersConfig',
'crispy_forms',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'storages',
'cloudinary',
'ckeditor']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Traceback:
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/backends/utils.py" in _execute
85. return self.cursor.execute(sql, params)
The above exception (relation "dashboard_adressbook" does not exist
LINE 1: SELECT COUNT(*) AS "__count" FROM "dashboard_adressbook"
^
) was the direct cause of the following exception:
File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/exception.py" in inner
34. response = get_response(request)
File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
126. response = self.process_exception_by_middleware(e, request)
File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
124. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/app/.heroku/python/lib/python3.6/site-packages/django/contrib/admin/options.py" in wrapper
604. return self.admin_site.admin_view(view)(*args, **kwargs)
File "/app/.heroku/python/lib/python3.6/site-packages/django/utils/decorators.py" in _wrapped_view
142. response = view_func(request, *args, **kwargs)
File "/app/.heroku/python/lib/python3.6/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
44. response = view_func(request, *args, **kwargs)
File "/app/.heroku/python/lib/python3.6/site-packages/django/contrib/admin/sites.py" in inner
223. return view(request, *args, **kwargs)
File "/app/.heroku/python/lib/python3.6/site-packages/django/utils/decorators.py" in _wrapper
45. return bound_method(*args, **kwargs)
File "/app/.heroku/python/lib/python3.6/site-packages/django/utils/decorators.py" in _wrapped_view
142. response = view_func(request, *args, **kwargs)
File "/app/.heroku/python/lib/python3.6/site-packages/django/contrib/admin/options.py" in changelist_view
1675. cl = self.get_changelist_instance(request)
File "/app/.heroku/python/lib/python3.6/site-packages/django/contrib/admin/options.py" in get_changelist_instance
742. sortable_by,
File "/app/.heroku/python/lib/python3.6/site-packages/django/contrib/admin/views/main.py" in __init__
81. self.get_results(request)
File "/app/.heroku/python/lib/python3.6/site-packages/django/contrib/admin/views/main.py" in get_results
209. result_count = paginator.count
File "/app/.heroku/python/lib/python3.6/site-packages/django/utils/functional.py" in __get__
37. res = instance.__dict__[self.name] = self.func(instance)
File "/app/.heroku/python/lib/python3.6/site-packages/django/core/paginator.py" in count
87. return self.object_list.count()
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/models/query.py" in count
383. return self.query.get_count(using=self.db)
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/models/sql/query.py" in get_count
498. number = obj.get_aggregation(using, ['__count'])['__count']
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/models/sql/query.py" in get_aggregation
483. result = compiler.execute_sql(SINGLE)
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/models/sql/compiler.py" in execute_sql
1065. cursor.execute(sql, params)
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/backends/utils.py" in execute
100. return super().execute(sql, params)
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/backends/utils.py" in execute
68. return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/backends/utils.py" in _execute_with_wrappers
77. return executor(sql, params, many, context)
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/backends/utils.py" in _execute
85. return self.cursor.execute(sql, params)
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/utils.py" in __exit__
89. raise dj_exc_value.with_traceback(traceback) from exc_value
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/backends/utils.py" in _execute
85. return self.cursor.execute(sql, params)
Exception Type: ProgrammingError at /admin/dashboard/adressbook/
Exception Value: relation "dashboard_adressbook" does not exist
LINE 1: SELECT COUNT(*) AS "__count" FROM "dashboard_adressbook"
^
我在本地计算机上进行了所有迁移,但仍然无法解决问题。
I did all of my migrations on my local machine but stil the problem does not go away.
我也在Heroku上进行了迁移。
I did my migrations on Heroku as well.
谢谢
推荐答案
警告: 请不要犯同样的错误,请不要在本地计算机和生产环境上使用其他引擎,一旦遇到问题,就无法修复
所以4天后,我通过删除数据库中的数据解决了这个问题。
So after 4 days I solved this problem by deleting the data from my Database.
我开始干净,我确保先迁移,然后再推送到heroku,我也一直在本地计算机和Heroku上使用相同引擎(postgres),并且到目前为止我还没有遇到任何错误。
I started clean and I made sure to migrate before the push to heroku, I have also been using the same engine (postgres) on my local machine and Heroku and I haven't encounter any bug so far.
因此,要解决此问题,您必须开始清理,唯一的解决方案是删除数据库,如果您有有价值的数据,这将不方便。
So to solve this problem you have to start clean, the only solution is to delete the database, which is not convenient if you have valuable data.
这篇关于关系不存在-Django& Postgres的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!