Я загрузил проект django в AWS с помощью Elastic Beanstalk.
Я использую команду переноса в django.config и добавляю экземпляр БД postgrest в среду из aws cosole.
Проблема заключается в том, что в соответствии с журналом команда миграции вызывается правильно, но в ней записывается «Нет применения миграции», даже если экземпляр БД является совершенно новым. Если я проверяю, что страница использует объекты БД, она показывает ошибку, связанную с БД.
Project Environemnt
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)),
],
),
]