Миграции для правильной работы на AWS - PullRequest
0 голосов
/ 26 августа 2018

Я загрузил проект django в AWS с помощью Elastic Beanstalk.

Я использую команду переноса в django.config и добавляю экземпляр БД postgrest в среду из aws cosole.

Проблема заключается в том, что в соответствии с журналом команда миграции вызывается правильно, но в ней записывается «Нет применения миграции», даже если экземпляр БД является совершенно новым. Если я проверяю, что страница использует объекты БД, она показывает ошибку, связанную с БД.

Project Environemnt

  • Джанго 2.0.4
  • Python 3,6

Error

Когда я открываю страницу с объектами Car, появляется следующая ошибка. ProgrammingError at / relation "cars_car" does not exist LINE 1: SELECT COUNT(*) AS "__count" FROM "cars_car" ^

Установка связанного кода

.ebextensions / django.config

# .ebextensions/django.config
container_commands:
  01_migrate:
    command: 'source /opt/python/run/venv/bin/activate && python manage.py migrate --noinput'
    leader_only: true

option_settings:
  aws:elasticbeanstalk:container:python:
    WSGIPath: ebaugustsix/wsgi.py

Settings.py (только некоторые импортные части)

# DB and debug settings from settings module

from .base import *
import os

DEBUG = True


if 'RDS_HOSTNAME' 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'],
        }
    }

Файл миграции

# migrations/0001_initial.py
from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='Car',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=200)),
            ],
        ),
    ]
...