【发布时间】:2016-08-22 03:55:59
【问题描述】:
我最近在 Elastic Beanstalk 上部署了一个 Django Web 应用程序。我已经对其进行了配置,以便我可以在线访问 Django 管理界面并向在线站点添加内容。
现在,该网站仍在开发中 - 我将不断进行更改和调整等。不幸的是,每次我从本地版本部署我的应用程序时,数据库 (SQLite) 都会被覆盖,并且我添加的任何内容都会被覆盖在线版本已被删除。
有没有办法从在线站点“提取”数据库(以及单独的数据库)?或者我可以告诉“部署”命令忽略数据库吗?
谢谢各位。
【问题讨论】:
-
什么数据库引擎? MySQL、PostgreSQL?在任何情况下,您都可以像在任何地方运行的任何数据库一样执行 mysqldump/restore 之类的操作。
-
感谢您的评论,@Mark。它只是一个 SQLite,我不知道如何在 Elastic Beanstalk 中访问数据库的在线版本。有没有办法做到这一点?
-
如果是 SQLite,那是完全不同的情况(在原始问题中包含很好的信息)。每当您部署应用程序时,您可能需要确定某种方式来部署数据。您是否将 Beanstalk 应用程序限制为单个 EC2 实例?
-
对此感到抱歉 - 已更新问题。我没有意识到这会是一个如此大的问题——即使需要付出很多努力,从长远来看,迁移到 MySQL 或 Postgres 会更好吗?是的,我的应用程序目前仅在一个实例上。很抱歉,我对 AWS 很陌生,还不确定它们是如何组合在一起的,所以您可能不得不使用小词。
-
主要问题是 SQLite 是一个运行在 Web 服务器上的内存数据库,这与我认为您所说的 RDS 服务器有很大不同。是的,从长远来看,最好切换到 MySQL 或 PostgreSQL 并使用 Amazon 的 RDS 服务。
标签: python django sqlite amazon-web-services amazon-elastic-beanstalk