我的生产应用程序是基于Laravel 5.3构建的。自从Laravel 5.6发布以来,我一直在升级我的Laravel。这是我到目前为止在我的开发服务器中所做的:
-
经历了Laravel站点中的每个升级更改并使用Git比较工具,我添加了从5.3<5.4<5.5<5.6的代码更改。
-
编辑了我的应用代码以反映更改。
-
运行
composer update
. -
将所有更改提交到 Git 存储库。
到目前为止一切顺利,因为它是一台开发机器。通常,当我将任何更新推送到生产服务器时,我只执行git pull origin master
,仅此而已。由于这是我在发布后对Laravel的第一次升级,因此我担心的是,在将新更新推送到生产服务器后,我是否在我的生产服务器中运行:composer update
或composer install
?
我读过很多建议在生产服务器中使用composer install
的文章,我通常在向我的 Laravel 添加新软件包时这样做。但是在这种情况下,由于它实际上是所有核心文件的升级以及对现有软件包的更新,在这种情况下我是否仍然运行composer install
或者我应该composer update
?当我推送提交时,它还会从开发站点提交 composer.lock 文件。
有人可以为我澄清一下吗?
您应该在生产中与composer.lock
文件一起执行composer install
。
如果您执行 composer 更新,那么它可能会破坏您的应用程序,因为包的依赖项可能已更改。
在生产中,还要确保你也放置了 composer.lock 文件。composer install
只会安装composer.lock文件中的版本,因此您将在生产和开发中使用相同的代码。
您可以阅读更多
https://getcomposer.org/doc/02-libraries.md#lock-file