0
私はプロジェクトDjango/Postgresプロジェクトに取り組んでいます。なぜ私はドッカー@ postgresを取得していますか?エラー:relation "accounts_myprofile"は存在しません?
ドッカーを作成すると、プロジェクトは1つのコンテナにDjango、もう1つのコンテナにはPostgresが起動します。
docker-compose run web python manage.py makemigrations
と::
私は両方を実行している[email protected] ERROR: relation "accounts_myprofile" does not exist
:私は次のエラーで、しかし、私のプロジェクトのすべての結果をマイプロファイルモデルを照会するものを特定のURLのを見ることができますよ
docker-compose run web python manage.py migrate
私はこれが重要かどうかわからないんだけど、これはで返します。
Operations to perform:
Apply all migrations: admin, auth, cities, contenttypes, django_messages, easy_thumbnails, guardian, sessions, sites, userena
Running migrations:
No migrations to apply.
Your models have changes that are not yet reflected in a migration, and so won't be applied.
Run 'manage.py makemigrations' to make new migrations, and then re-run 'manage.py migrate' to apply them.
下記の私のドッカーの作成とDjangoの設定を添付してください。
ドッカー-構成
web:
restart: always
build: ./web
expose:
- "8000"
links:
- postgres:postgres
volumes:
- /usr/src/app
- /usr/src/app/static
env_file: .env
environment:
DEBUG: 'true'
command: python manage.py runserver 0.0.0.0:8000
postgres:
restart: always
image: kartoza/postgis:9.4-2.1
ports:
- "5432:5432"
volumes:
- pgdata:/var/lib/postgresql/data/
models.py
from django.db import models
from django.contrib.auth.models import User
from django.utils.translation import ugettext as _
from userena.models import UserenaBaseProfile
from django.conf import settings
from PIL import Image
from django_resized import ResizedImageField
import datetime
class MyProfile(UserenaBaseProfile):
user = models.OneToOneField(User,
unique=True,
verbose_name=_('user'),
related_name='my_profile')
storename=models.CharField(null=True, blank=True, max_length=20)
streetaddress=models.CharField(null=True, blank=True, max_length=30)
city = models.CharField(null=True, blank=True, max_length=20)
state = models.CharField(null=True, blank=True, max_length=20)
zipcode = models.IntegerField(_('zipcode'),
null=True, blank=True)
nearbyzips1=models.IntegerField(null=True, blank=True)
nearbyzips2=models.IntegerField(null=True, blank=True)
nearbyzips3=models.IntegerField(null=True, blank=True)
nearbyzips4=models.IntegerField(null=True, blank=True)
nearbyzips5=models.IntegerField(null=True, blank=True)
nearbyzips6=models.IntegerField(null=True, blank=True)
phone=models.CharField(null=True, blank=True, max_length=16)
websiteurl=models.CharField(null=True, blank=True, max_length=38)
deliveryoption=models.BooleanField(default=False)
storebio=models.CharField(null=True, blank=True, max_length=100)
storespecials=models.CharField(null=True, blank=True, max_length=65)
reviewavg=models.FloatField(null=True, blank=True, max_length=5)
coverpic = ResizedImageField(max_width=350, upload_to="site_media/media/covers/", null=True, blank=True)
def __unicode__(self):
return u'%s %s %s %s %s %s %s %s' % (self.user, self.storename, self.streetaddress, self.city, self.state, self.zipcode, self.storebio, self.reviewavg)
class Entry(models.Model):
headline= models.CharField(max_length=200,)
body_text = models.TextField()
author=models.ForeignKey(settings.AUTH_USER_MODEL, related_name='entryauthors')
pub_date=models.DateTimeField(auto_now_add=True)
zipcode =models.IntegerField(null=True)
entrytype = models.IntegerField(null=True)
price1 = models.CharField(max_length=20)
price2 = models.CharField(max_length=20)
price3 = models.CharField(null=True, blank=True, max_length=20)
price4 = models.CharField(null=True, blank=True, max_length=20)
price5 = models.CharField(null=True, blank=True, max_length=20)
item_picture = ResizedImageField(max_width=400, upload_to="site_media/media/items/")
def __str__(self):
return u'%s %s %s %s %s %s %s' % (self.headline, self.body_text, self.author, self.pub_date, self.zipcode, self.price1, self.price2)
views.py(のみエラーをトリガクエリとの機能を含む)
from django.shortcuts import render
from django.http import HttpResponseRedirect
from django.db import models
from django.contrib.auth.models import User
from accounts.forms import UserReviewForm
from accounts.forms import SellForm
from accounts.models import Entry
from accounts.models import UserReview
from accounts.models import MyProfile
from django.conf.urls import include, url
from django.template.loader import render_to_string
import json as simplejson
from django.core.serializers.json import DjangoJSONEncoder
from django.http import HttpResponse
import datetime
from userena import settings as userena_settings
from django.shortcuts import redirect, get_object_or_404
from userena.utils import signin_redirect, get_profile_model, get_user_model
from userena.views import ExtraContextTemplateView
from django.contrib.auth.decorators import login_required
from django.views.decorators.csrf import csrf_exempt
from django_messages.models import inbox_count_for
from django.contrib.auth.views import login
from accounts.serializers import EntrySerializer
def storefront(request):
if request.user.is_authenticated():
if request.user.my_profile.zipcode:
latest_entries = Entry.objects.filter(zipcode__in=[request.user.my_profile.nearbyzips1,
request.user.my_profile.nearbyzips2,
request.user.my_profile.nearbyzips3,
request.user.my_profile.nearbyzips4,
request.user.my_profile.nearbyzips5]).order_by('-pub_date')[:16]
unread_list = inbox_count_for(request.user)
context = {'latest_entries': latest_entries, 'unread_list': unread_list}
else:
latest_entries = Entry.objects.order_by('-pub_date')[:16]
context = {'latest_entries': latest_entries}
else:
latest_entries = Entry.objects.order_by('-pub_date')[:16]
context = {'latest_entries': latest_entries}
if request.is_ajax():
if request.GET.get('filter') == 'new':
latest_entries = latest_entries.filter(entrytype=1)
context = {'latest_entries': latest_entries}
return render(request, 'storefrontload.html', context)
if request.GET.get('filter') == 'old':
latest_entries = Entry.objects.filter(entrytype=2)
context = {'latest_entries': latest_entries}
return render(request, 'storefrontload.html', context)
if request.GET.get('filter') == 'oklder':
latest_entries = Entry.objects.filter(entrytype=3)
context = {'latest_entries': latest_entries}
return render(request, 'storefrontload.html', context)
return render(request, 'storefront.html', context)
settings.py
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
PACKAGE_ROOT = os.path.abspath(os.path.dirname(__file__))
PROJECT_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir))
ALLOWED_HOSTS=['*']
DEBUG=True
DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'NAME': os.environ['DB_NAME'],
'USER': os.environ['DB_USER'],
'PASSWORD': os.environ['DB_PASS'],
'HOST': os.environ['DB_SERVICE'],
'PORT': os.environ['DB_PORT'],
}
}
TIME_ZONE = "UTC"
LANGUAGE_CODE = "en-us"
SITE_ID = int(os.environ.get("SITE_ID", 1))
USE_I18N = True
USE_L10N = True
USE_TZ = True
MEDIA_ROOT = os.path.join(PACKAGE_ROOT, "media")
MEDIA_URL = "/media/"
STATIC_ROOT = os.path.join(PACKAGE_ROOT, "static1")
STATIC_URL = "/static/"
STATICFILES_DIRS = [
os.path.join(PACKAGE_ROOT, "static"),
]
STATICFILES_FINDERS = [
"django.contrib.staticfiles.finders.FileSystemFinder",
"django.contrib.staticfiles.finders.AppDirectoriesFinder",
]
MIDDLEWARE_CLASSES = [
"django.middleware.common.CommonMiddleware",
"django.contrib.sessions.middleware.SessionMiddleware",
"django.middleware.csrf.CsrfViewMiddleware",
"django.contrib.auth.middleware.AuthenticationMiddleware",
"django.contrib.messages.middleware.MessageMiddleware",
]
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
os.path.join(BASE_DIR, 'templates'),
],
'APP_DIRS': True,
'OPTIONS': {
'debug': DEBUG,
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
何らかの理由で実行するための
私はDjango 1.6から1.10で作成されたこのプロジェクトをアップグレードしようとしていますので、1.10で変更されたものがプロジェクトを壊していると推測していますが、それは何かを理解できません。 – david
TL:DR。 \t [**最小限で完全かつ検証可能な例を作成する方法**](http://stackoverflow.com/help/mcve) –
Django 1.8は、Southを置き換える新しいdbマイグレーションシステムを導入しました。 1.6からアップグレードしようとしているので、South移行ファイルもアップグレードする必要があります。 –