我在Heroku上安装了wordpress,我可以安装插件和更新。 我的问题是,如果服务器上的某些文件发生了变化,我怎样才能确保它被提交到我的应用程序的heroku git repo?
示例,wordpress发布更新。 我点击管理员中的更新wordpress。 所有更新的文件都在服务器上更改。 如果我克隆来自heroku的repo,我是否会安装新版本的wordpress?
答案 0 :(得分:3)
Heroku文件系统是Ephemeral,也就是说,当dyno因某种原因重新启动时,本地存储的文件将会丢失。 dynos无法访问Git存储库。它们存储在一个slug中,这是一个美化名称,实际上是一个zip文件。这是一个安全功能:如果有人猜到密码并获得对文件系统的访问权限,他们将在重新启动时重新运行应用程序。允许某人通过网络更新您的版本控制是非常糟糕的想法。
因此即使Wordpress运行更新并且看似成功,它也可以执行以下任一操作或两者:
这可能会使整个安装陷入混乱,因为代码和数据将不同步。
在Heroku上运行的Wordpress上有两种安装方式:
选项2也可能是危险的,因为在应用程序运行时,它实际上正在弄乱您的生产数据库。这意味着您应该关闭生产版本进行维护,或者只是将其设置为只读。记得也要拍摄数据库快照。
答案 1 :(得分:0)
我使用选项1来做到这一点。使用git只需在每次提交后将更改推送到heroku远程,如下所示:
git push heroku branchinwhichyouareworking
这样您的更改将被提交到您应用的git仓库。 请记住,如果它不是您要推送到heroku的主分支,则必须使用以下语法:
git push heroku branchinwhichyouareworking:master
更多信息here。