2017-06-29 7 views
0

ローカルマシン上で完全に動作するアプリケーションを作成しましたが、一度展開すると500サーバーエラーが発生します。 ログはこのエラーを印刷...Djangoをデプロイする際のProgrammingError

ProgrammingError: relation "land_property" does not exist 
LINE 1: ...video", "land_property"."featured_video_url" FROM "land_prop... 
       ^

私は私のローカルマシンがsqliteのとうまくアプリが実行されますので、それは私のPostgresのDBに問題だと思います。

私はプログラミングにかなり新たなんだとDjangoするブランドの新しいですので、あなたの助けが

編集高く評価されています が、これは私が最終的に考え出し多くの試行錯誤の後、私のmodels.py

from __future__ import unicode_literals 

from boto.s3.connection import S3Connection 
from boto.s3.key import Key 
from django.conf import settings 

from django.db import models 
from django.urls.base import reverse 
from django.utils.translation import ugettext_lazy as _ 


class Feature(models.Model): 
    detail_text = models.TextField(_('Feature Details')) 


class PropertyManager(models.Manager): 
    def get_random_properties(self): 
     return self.order_by('?') 


class Property(models.Model): 
    parcel = models.TextField(_('Property Parcel'), null=True, blank=True) 
    property_size = models.CharField(
     _('Property Size'), null=True, blank=True, max_length=255 
    ) 
    contact_phone = models.CharField(
     _('Property Contact Phone'), null=True, blank=True, max_length=255 
    ) 

    features = models.ManyToManyField(Feature) 

    gallery_url = models.CharField(
     _('Property Facebook Gallery URL'), null=True, blank=True, 
     max_length=255 
    ) 
    price = models.CharField(
     _('Property Price'), null=True, blank=True, max_length=255 
    ) 

    # Media files 
    featured_image = models.FileField(blank=True) 
    featured_image_url = models.CharField(blank=True, null=True, max_length=255) 
    featured_video = models.FileField(blank=True) 
    featured_video_url = models.CharField(blank=True, null=True, max_length=255) 

    objects = PropertyManager() 

    def __unicode__(self): 
     return "Property {0} at {1}".format(self.id, self.parcel) 

    @property 
    def abs_uri(self): 
     return reverse('property_detail', args=[self.pk,]) 

    @property 
    def extra_features(self): 
     return self.features.all() 

    def save(self, *args, **kwargs): 
     if self.featured_image or self.featured_video: 
      conn = S3Connection(
       settings.AWS_ACCESS_KEY_ID, 
       settings.AWS_ACCESS_KEY_SECRET 
      ) 
      bucket = conn.get_bucket(settings.AWS_S3_BUCKET) 
      k = Key(bucket) 
      if self.featured_image: 
       k.key = 'featured_images/{0}'.format(self.featured_image.name) 
       k.set_contents_from_file(self.featured_image.file) 
       k.make_public() 
       self.featured_image_url = k.generate_url(
        expires_in=0, query_auth=False 
       ) 
       self.featured_image = '' 

      if self.featured_video: 
       k.key = 'featured_video/{0}'.format(self.featured_video.name) 
       k.set_contents_from_file(self.featured_video.file) 
       k.make_public() 
       self.featured_video_url = k.generate_url(
        expires_in=0, query_auth=False 
       ) 
       self.featured_video = '' 
     super(Property, self).save(*args, **kwargs) 
+0

プロジェクトを実行する前に移行しましたか? – Exprator

+0

はい。私は – freefly0313

+0

をマイグレーションしました。問題は、基本的に関係が正しくマイグレーションされなかったデータベースと、1つのことを行い、データベースを完全にドロップし、次にマイグレーションを実行してから、再度マイグレーションします。 – Exprator

答えて

0

ですそれを出す。私は、それはsqliteのDBの上の代わりにすべての私のマイグレーションを実行しているサーバー上で設定した環境変数を持っていたので、私のデータベース構造は...

if 'RDS_DB_NAME' in os.environ: 
    DATABASES = { 
     'default': { 
      'ENGINE': 'django.db.backends.postgresql_psycopg2', 
      'NAME': os.environ['RDS_DB_NAME'], 
      'USER': os.environ['RDS_USERNAME'], 
      'PASSWORD': os.environ['RDS_PASSWORD'], 
      'HOST': os.environ['RDS_HOSTNAME'], 
      'PORT': os.environ['RDS_PORT'], 
     } 
    } 
else: 
    DATABASES = { 
     'default': { 
      'ENGINE': 'django.db.backends.sqlite3', 
      'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 
     } 
    } 

次のようになります。ローカルマシンに環境変数を追加して移行を再実行していました。

すべての入力に対して@Expratorに感謝します。

私は今でも別のエラーに遭遇しています。私がdjangoの管理者にログインしようとすると、 "禁止されています"と表示されます。何か案は?

関連する問題