A-nkt
@A-nkt (Yuta Nakata)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

relation " " does not exist LINE 1: SELECT COUNT(*) AS "__count" FROM " "が解決できない

解決したいこと

ProgrammingError at /admin/app1/blog/
relation "Blog" does not exist
LINE 1: SELECT COUNT(*) AS "__count" FROM "Blog"

のエラーを解決したいです。

DegitalOceanを使って、ubuntuにdjangoのアプリをデプロイしました。
データベースにはpostgresqlを使用しています。

初期のデプロイは、問題なくできたのですが、新たな機能を追加したいと思いpython manage.py startappで新たなアプリケーションを追加・作成しました。管理画面から記事を書くアプリケーションなのですが、ローカルの環境では、(sqliteということもあってか)問題なく動作確認ができました。

しかし、本番環境では管理画面からモデルをクリックすると、上記のエラーが起きました。解決方法を教えて下さい。

バージョン

  • Django 3.0.8
  • Ubuntu 13.2-1
  • Postgresql 13.2

スクリーンショット 2021-03-28 23.00.04.png

発生している問題・エラー

ProgrammingError at /admin/app1/blog/
relation "Blog" does not exist
LINE 1: SELECT COUNT(*) AS "__count" FROM "Blog"

該当するソースコード

from django.db import models
from ckeditor.fields import RichTextField
from django.utils import timezone
from django.utils.translation import gettext as _
# Create your models here.

class Blog(models.Model):
    class Meta:
        db_table = 'Blog'
        verbose_name = _('メディア記事')
        verbose_name_plural = _('メディア記事')

    title = models.CharField(verbose_name='タイトル',max_length=40,blank=True,null=True)
    image = models.ImageField(upload_to='media/',blank=True,null=True)
    body = RichTextField(blank=True,null=True)
    date = models.DateField(verbose_name='更新日',blank=True,null=True,default=timezone.now)
    discription = models.TextField(blank=True,null=True,max_length=50)

    def __str__(self):
        template = '更新日:'+'{0.date} '+', タイトル:'+'{0.title}'
        return template.format(self)

自分で試したこと

migrateが通っていないかと思い、python manage.py showmigrationsを確認しましたが、問題なくできていました。

スクリーンショット 2021-03-28 23.05.21.png

解決方法

relation " " does not exist

ということで、データべースにテーブルがないことが問題です。
本番環境では、postgresqlで開発環境ではsqliteでした。

python manage.py makemigrations
python manage.py migrate

ができているのに、エラーが出ている原因はmanage.pysqliteを指していることに問題ありました。
(すなわち、manage.pypsotgresqlを参照していませんでした。)
なので、manage.pyの参照を変更すればよかっただけでした。

0

No Answers yet.

Your answer might help someone💌