使用AWS Elastic Beanstalk的Flask SQLAlchemy数据库 - 浪费时间?

b_g*_*b_g 4 sqlite amazon-web-services flask-sqlalchemy flask-security amazon-elastic-beanstalk

我已成功将Flask应用程序部署到AWS Elastic Beanstalk.该应用程序使用SQLAlchemy数据库,我使用Flask-Security来处理登录/注册等.我使用Flask-Migrate来处理数据库迁移.

这里的问题是,无论何时我使用git aws.push它都会将我的本地数据库推送到AWS并覆盖实时数据库.我想我想做的只是从AWS EB"拉"现场直播,并且只在极少数情况下推动.

我是否能够访问已推送到AWS的SQLAlchemy数据库?或者,这不可能吗?也许有一些组合.gitignore.elasticbeanstalk设置可以工作?

我正在使用SQLite.

Sea*_*ira 8

是的,你的数据库需要在版本控制,就应该生活在持久性存储(最有可能的弹性块存储服务(EBS) ),你应该使用类似处理架构更改(迁移)的烧瓶迁移.

关于EBSAWS帮助文章应该可以帮助您入门,但从较高的层面来看,您要做的是:

  • 创建EBS卷
  • 将卷附加到正在运行的实例
  • 在实例上安装卷
  • 使用网络文件系统(NFS)将卷公开给其他实例
  • 确保在新EBS实例启动时,它们会挂载NFS

或者,您可以:

  • 等到弹性文件系统(EFS)超出预览(或请求访问权限)并在EB支持EFS时在EFS上挂载所有EB启动的实例.
  • 切换到关系数据库服务(RDS)(或在EC2上运行您自己的数据库服务器)并在本地运行(PostgreSQL | MySQL |无论您选择什么)的实例进行测试.