标签: python django sqlite amazon-web-services elastic-beanstalk
我最近在Elastic Beanstalk上部署了一个Django Web应用程序。我已对其进行了配置,以便我可以在线访问Django管理界面并将内容添加到在线站点。
现在,该网站仍处于开发阶段 - 我将进行切换,更改和调整等。不幸的是,每次我从本地版本部署我的应用程序时,数据库(SQLite)都会被覆盖,我添加的任何内容在线版本已删除。
有没有办法拉动'来自在线网站的数据库(以及数据库)?或者,我可以告诉他们部署'命令忽略数据库?
谢谢大家。
答案 0 :(得分:1)
正如在几条评论中已经说过的那样,因为(可能)你的SQLite数据库是项目目录中的一个文件,每次部署应用程序时都会被替换/删除,这就是你在部署之间丢失所有数据的原因。
对于生产实例(特别是这些PaaS服务),您应该使用外部数据库(PostgreSQL,MySQL等)。
更直接地回答您的问题,并假设您希望保持设置不变(至少在您提出问题时),我会看到两种方法可以在部署之间保存数据库。一个是通过ssh访问实例并获取数据库文件,另一个是使用来自django的dumpdata命令导出数据,然后使用loaddata加载它。
ssh
dumpdata
loaddata