如何在Azure Web应用程序上托管的Django应用中自动备份DB.SQLITE3文件



我有一个django Web应用程序托管在_________.azurewebsites.net

文件夹结构如下:

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

我已经设置了Azure设置,将其推向我的远程GitHub分支,导致Azure将文件与我的github分支同步到我的/site/wwwroot/folder。

明确,

git push origin branch 

这会导致问题。每当我尝试使用GIT PUSH添加更改时,DB.SQLITE3都不会反映网站环境中的更改。因此,如果有人将数据保存到/site/wwwroot/db.sqlite3,那么我的github存储库将不知道这些更改。更新我的github存储库将采用旧的db.sqlite3,并在Azure和GitHub之间的文件同步期间重新上传此旧。因此,/site/wwwroot/pervertinited db.sqlite3 of tergrentited并丢失数据。

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

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

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

首先,您的sqlite文件不应在版本控件中。您当地的DB就是当地的;由于您的经历,它不应将其部署到生产中。将其从git中删除并确保它在您的.gitignore文件中。

其次,在生产中使用基于文件的DB并不合适。SQLITE是一个很棒的工具,但是一旦您搬到真实的生产站点,就需要一个真实的数据库。除了其他任何事情之外,如果您发现需要将站点扩展到一个以上的Azure实例,则它们每个都将拥有单独的数据库文件副本,因此数据将很快摆脱同步。使用真正的DB,例如PostgreSQL;另一个好处是,您的主人会照顾它。

相关内容

  • 没有找到相关文章

最新更新