簡體   English   中英

關系不存在 - Django & Postgres

[英]Relation does not exist - Django & Postgres

我向現有模型添加了一些表,但是當我將項目推送到 heroku 時出現錯誤

我在這個特定應用程序上添加的任何模型都會發生這種情況

ProgrammingError at /admin/dashboard/adressbook/ 關系“dashboard_adressbook”不存在第 1 行:SELECT COUNT(*) AS “__count” FROM “dashboard_adressbook”

我的模型.py

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"
                                          ^

我在本地機器上完成了所有遷移,但問題仍然沒有消失。

我也在 Heroku 上進行了遷移。

謝謝

警告:請不要犯同樣的錯誤,不要在本地機器和生產上使用不同的引擎,一旦遇到問題,就無法修復它

所以 4 天后,我通過從我的數據庫中刪除數據解決了這個問題。

我開始清理並確保在推送到 heroku之前遷移,我還在本地機器和 Heroku 上使用了相同的引擎(postgres),到目前為止我還沒有遇到任何錯誤。

所以要解決這個問題就得從clean開始,唯一的辦法就是刪除數據庫,如果你有有價值的數據,這很不方便。

這對我有用

  1. heroku 運行 bash
  2. python manage.py makemigrations
  3. python manage.py 遷移

在從 Heroku 儀表板重置我的數據庫后,登陸模板從我的數據庫獲取數據時遇到了同樣的錯誤。

我通過執行以下操作解決了它:

  1. python manage.py makemigrations
  2. python manage.py 遷移
  3. git 添加。
  4. git push -m "上傳空數據庫"
  5. git push heroku master

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM