我已经在AWS Elastic Beanstalk上部署了我的Django应用程序,使用的是sqlite数据库。这个网站已经运行了一段时间了。现在,我对网站进行了一些更改,并希望再次部署,但通过保留数据库所做的更改(通过表单输入)但是我找不到下载更新的数据库或任何文件的方法。我唯一能够下载的应用程序版本是我第一次部署时已经上传的版本。如何下载当前运行的应用程序版本并使用相同的数据库进行部署?
z2acfund1#
您可以使用scp连接到远程服务器并下载所有文件。正如所评论的,你最好使用dumpdata,然后输入/输出该文件(而不是数据库或整个站点)。然而,如果您的远程系统python版本与您的django站点不同,那么dumpdata可能无法工作(这是我的情况),所以我设法将整个站点文件夹下载回本地,然后使用dumpdataaws elastic beanstalk Python应用程序的/opt/python/current/app文件只需使用scp -r将整个站点下载到本地。
dumpdata
/opt/python/current/app
scp -r
sqyvllje2#
我相信在EB部署过程中,您有一个sqlite数据库文件正在从本地打包。如果是这样的话,那么您需要做的就是不要在部署中包含db.sqlite文件。将db.sqllite文件的位置移到s3或ebs持久卷,以便它持久存在。按照django推荐的方式,使用. ebextensions在aws数据库文件上运行aws中的数据库迁移。为了安全起见,你可以ssh到你的eb环境,这是ec2示例和下载db.sqlite文件只是以防万一。
2条答案
按热度按时间z2acfund1#
您可以使用scp连接到远程服务器并下载所有文件。
正如所评论的,你最好使用
dumpdata
,然后输入/输出该文件(而不是数据库或整个站点)。然而,如果您的远程系统python版本与您的django站点不同,那么dumpdata可能无法工作(这是我的情况),所以我设法将整个站点文件夹下载回本地,然后使用
dumpdata
aws elastic beanstalk Python应用程序的
/opt/python/current/app
文件只需使用
scp -r
将整个站点下载到本地。sqyvllje2#
我相信在EB部署过程中,您有一个sqlite数据库文件正在从本地打包。如果是这样的话,那么您需要做的就是不要在部署中包含db.sqlite文件。
将db.sqllite文件的位置移到s3或ebs持久卷,以便它持久存在。
按照django推荐的方式,使用. ebextensions在aws数据库文件上运行aws中的数据库迁移。
为了安全起见,你可以ssh到你的eb环境,这是ec2示例和下载db.sqlite文件只是以防万一。