繁体   English   中英

如何在Azure Web Apps上托管的Django App中自动备份db.sqlite3文件?

[英]How do I automatically backup db.sqlite3 file in Django App hosted on Azure Web Apps?

我在_________.azurewebsites.net上托管了Django Web应用程序

文件夹结构如下:

- Github Repository
     - settingsFolder
     - app1folder
     - app2folder
     - manage.py 
     - web.config
     - db.sqlite3

我在Azure上设置了对我的远程github分支的推送导致Azure将我的Github分支的文件同步到我的/ site / wwwroot /文件夹中。

明确地,

git push origin branch 

这会引起问题。 每次我尝试使用git push向我的网站添加更改时,db.sqlite3都不反映网站环境中的更改。 因此,如果有人要将数据保存到/site/wwwroot/db.sqlite3,则我的github存储库将是所做更改的UNAWARE。 更新我的github存储库将使用旧的db.sqlite3,并在Azure和github之间的文件同步期间重新上传此旧文件。 因此,/ site / wwwroot /上的db.sqlite3被覆盖,数据将丢失。

一种解决方案是通过连接到我的/ site / wwwroot文件夹,保存db.sqlite3并定期在我的Github存储库中替换它来手动进行备份。

可以自动化吗? 如果是这样,Azure为我提供了哪些资源?

您正在做的事情在很多方面都是错误的。

首先,您的sqlite文件不应处于版本控制中。 您的本地数据库就是本地数据库。 出于您遇到的确切原因,不应将其部署到生产中。 从git中删除它,并确保它在您的.gitignore文件中。

其次,在生产环境中使用基于文件的数据库并不是真正合适的选择。 Sqlite是一个很棒的工具,但是一旦您移至真实的生产站点,就需要一个真实的数据库。 除此之外,如果您发现需要将站点扩展到多个Azure实例,则它们每个都有一个单独的数据库文件副本,因此数据将迅速失去同步。 使用像PostgreSQL这样的真实数据库; 这样做的另一个好处是您的主机将负责备份它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM