2

Я успешно применил приложение Flask к AWAS Elastic Beanstalk. Приложение использует базу данных SQLAlchemy, и я использую Flask-Security для обработки входа/регистрации и т. Д. Я использую Flask-Migrate для обработки миграции базы данных.Колба SQLAlchemy База данных с AWS Упругий бобовый стебель - трата времени?

Проблема заключается в том, что всякий раз, когда я использую git aws.push, он будет подталкивать мою локальную базу данных к AWS и перезаписывать живую. Я предполагаю, что мне хотелось бы только «вытащить» живой из AWS EB, и только толкать в редких обстоятельствах.

Будет ли я иметь доступ к базе данных SQLAlchemy, которую я нажал на AWS? Или это невозможно? Возможно, существует некоторая комбинация настроек .gitignore и .elasticbeanstalk, которые могли бы работать?

Я использую SQLite.

+0

Как я помню, SQLAlchemy - это просто ORM, что вы * фактическая * база данных? SQLite? Или вы говорите о некоторых файлах схемы/миграции? – sap1ens

+0

Да, это SQLite –

+0

'.gitignore' является вашим другом здесь – zelusp

ответ

5

Да, ваша база данных должна не быть в системе управления версиями, она должна жить на постоянной памяти (скорее всего the Elastic Block Storage service (EBS)), и вы должны обрабатывать схемы изменения (миграции), используя что-то вроде Flask-Migrate.

AWS help article on EBS вы должны получить работу, но на высоком уровне, что вы собираетесь сделать, это:

  • Установите громкость на запущенный экземпляр
  • горы объем на instance
  • Экспозиция тома в другие экземпляры с использованием сетевой файловой системы (NFS)
  • Убедитесь, что при запуске новых экземпляров EBS они монтируют NFS

В качестве альтернативы, вы можете:

  • Подождите, пока Elastic File System (EFS) вне предварительного просмотра (или запросить доступ) и смонтировать все ваши EB-запущенных экземпляров на EFS раз EB не поддерживает EFS.
  • Переключитесь на the Relational Database Service (RDS) (или запустите свой собственный сервер базы данных на EC2) и запустите экземпляр (PostgreSQL | MySQL | Что бы вы ни выбрали) локально для тестирования.
+0

Нет upvotes? Этот ответ намного более информативен, чем другой, и он должен быть первым! – Manuel

0

Ключ содержит вашу базу данных за пределами вашей эластичной среды Beanstalk. Если нет, по мере увеличения нагрузки различные экземпляры вашего приложения Flask будут записывать в свою локальную БД. Там не будет базы данных «master», которая будет содержать все коммиты.

Самое простое решение - использовать службу реляционных баз данных AWS (RDS) для размещения вашей БД в качестве внешней службы. Хороший учебник, который проходит по этому точному сценарию:

Deploying a Flask Application on AWS using Elastic Beanstalk and RDS

SQLAlchemy/колба/AWS определенно не трата времени! Удачи.

+0

Опишите здесь небольшое содержание учебника – abarisone

+0

Учебное пособие представляет собой пошаговый пример развертывания простого приложения Flask с базой данных на AWS. Он не предполагает предварительного знакомства с AWS, а код Flask предоставляется через GitHub. Исходный плакат будет помог с помощью шагов 3 и 4 из учебника, в котором показано, как настроить базу данных SQL в AWS и связать ее с вашим приложением Flask. – manychairs

 Смежные вопросы

  • Нет связанных вопросов^_^