У меня на Elastic Beanstalk работает приложение django с базой данных Postgre.Приложение работает нормально и без проблем общается с базой данных.Это мои настройки базы данных,
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'),
}
}
Однако у меня есть задание cron, которое запускается как пользовательская команда, а также необходимо записать объект в базу данных, вот пользовательская команда,
class Command(BaseCommand):
def handle(self, *args, **options):
sources = Source.objects.all()
// write some data
Это файл конфигурации,
04_setup_cron:
command: "cat .ebextensions/crontab.txt > /etc/cron.d/crontab && chmod 644 /etc/cron.d/crontab"
leader_only: true
И вот как я устанавливаю разрешения для crontab.txt
*/15 * * * * source /opt/python/run/venv/bin/activate && cd /opt/python/current/app/
&& source /opt/python/current/env && python manage.py parse >> /var/log/cron.log 2>&1
Этот cronjob завершается ошибкой, когда я захожу в один изЭкземпляры EC2 и попытка запустить это, я получаю следующую ошибку,
conn = Database.connect(**conn_params)
django.db.utils.OperationalError: unable to open database file
Это работает локально, как мне заставить это работать на экземпляре EC2?Любая помощь приветствуется.