我已成功将Flask应用程序部署到AWS Elastic Beanstalk。该应用程序使用SQLAlchemy数据库,我使用Flask-Security来处理登录/注册等。我使用Flask-Migrate来处理数据库迁移。
这里的问题是,每当我使用git aws.push
时,它都会将我的本地数据库推送到AWS并覆盖实时数据库。我想我想做的事情只是从AWS EB“拉出”现场直播,并且只在极少数情况下推动。
我是否可以访问已推送到AWS的SQLAlchemy数据库?或者,这不可能吗?也许有.gitignore
和.elasticbeanstalk
设置的某种组合可以起作用?
我正在使用SQLite。
答案 0 :(得分:7)
是的,您的数据库需要不处于版本控制中,它应该存在于持久存储(很可能是the Elastic Block Storage service (EBS)),您应该使用类似的东西处理架构更改(迁移) Flask-Migrate
AWS help article on EBS应该让你开始,但在高层次上,你要做的是:
或者,您可以:
答案 1 :(得分:1)
关键是在Elastic Beanstalk环境之外托管数据库。如果没有,随着负载的增加,Flask应用程序的不同实例将写入自己的本地数据库。赢得了一个"大师"包含所有提交的数据库。
最简单的解决方案是使用AWS Relational Database Service(RDS)将您的数据库托管为外部服务。一个很好的教程,介绍了这个确切的场景:
Deploying a Flask Application on AWS using Elastic Beanstalk and RDS
SQLAlchemy / Flask / AWS肯定不浪费时间!祝你好运。