作为开发人员,我们需要知道客户端使用的软件与我们交付给他们的软件完全相同。我们还需要开发堆栈不是移动目标。为此,软件更新应完全在开发人员的控制之下。
我可以在OctoberCMS中停用所有自动更新(核心,插件,主题)吗?
为了避免任何“破坏”的变化,我想通过组合来更新实时(和测试)网站
* git-ftp
从开发服务器到测试/生活
和
* php artisan october:up
在https://octobercms.com/docs/plugin/updates中有一节说明,
更新流程
10月发生以下任何一种情况时,会自动执行更新过程:
1)当管理员登录后端时 2)使用后端区域中的更新功能更新系统时 3)在应用程序目录的命令行中调用控制台命令php artisan october:up
时。
1)和3)没有机会避免可能无意中“破坏”现场网站的变化:
在1)中,每次管理员登录实时站点时,可能会上载并安装可能会中断更改的内容。
在3)中,为更新的插件更新数据库的过程也可能导致更新系统的其他部分 a)打破现场 b)使 live 站点与 development 和 testing 不同步。
同一页面上还有另一部分,
重要更新
有时,插件需要引入会破坏已经使用该插件的网站的功能。如果version.yaml文件中的更新注释以三个惊叹号(!!!)开头,那么它将被视为重要,并且将要求用户在更新之前进行确认。重要更新评论的一个示例:
1.1.0:!!!这是一个包含重大更改的重要更新。
当系统检测到重要更新时,它将提供三个选项:
Confirm update Skip this plugin (once only) Skip this plugin (always)
确认评论会像往常一样更新插件,或者如果评论被跳过则不会更新。
然而,这有两个问题:
1)插件作者必须彻底测试更新,注意“重大更改”,并将!!!
添加到版本文件中。
2)更新可能不会在标准意义上“破坏”网站,但它可能会导致不必要的副作用,这可能有效地导致破损。
可以在cms.php
配置文件中禁用核心更新:
/ *
| ------------------------------------------------- -------------------------
|防止应用程序更新
| ------------------------------------------------- -------------------------
|
|如果使用composer或git下载核心文件的更新,请设置此
|值为'true'以防止更新网关尝试下载
|这些文件再次作为应用程序更新过程的一部分。插件
|和主题仍将下载 |
* /'disableCoreUpdates'=>是的,
但是,如相关评论中所述,“插件和主题仍将被下载”。 我认为这意味着安装了和。
那么,我可以在OctoberCMS中禁用所有自动更新(核心,插件,主题)吗? 如果没有,是否有另一种方法可以避免这些问题,或者我应该在OctoberCMS github页面上将其作为一个非常需要的功能发布?
即使在开发服务器上,自动更新插件也是一个问题是很有争议的:
在开发网站的同时,突然间它就破了。这是由于开发人员所做的更改,还是后端登录时发生的插件的后台更新而造成的?
这是否意味着在开发网站时我必须永久登录以避免启动更新过程?
答案 0 :(得分:0)
更新过程与您在问题中列出的更新过程略有不同。这个过程如下:
更新流程
1)当管理员登录后端时,会安装任何已下载的更新(迁移等)
2)使用后端区域中的更新功能更新系统时,将下载并安装更新
3)当从应用程序目录在命令行中调用控制台命令php artisan october:up
时,将安装已下载的更新
4)使用控制台命令php artisan october:update
下载并安装更新
5)使用作曲家composer update
下载更新时,您可以使用php artisan october:up