【问题标题】:How can I create a backup of composer/bower vendor packages before updating?如何在更新之前创建 composer/bower 供应商包的备份?
【发布时间】:2020-07-26 21:00:24
【问题描述】:

我需要更新一个使用 composer 和 bower 作为包管理器的过时 Symfony 2.8 项目。

问题是网站可能不会宕机,但是因为项目已经过时了,我担心composer或者bower会在更新过程中失败,导致网站宕机。

我知道我可以在试运行模式下运行 composer,并且在实际更新之前我会这样做:

composer update --dry-run
composer install --dry-run

但我想绝对确定我可以在出现问题时恢复供应商包。所以我想我可以简单地制作一个备份 tar:

cd /home/project/public_html/
tar cvf /home/project/composer_bower`date +'%Y%m%d'`.tar composer.json composer.lock bower.json .bowerrc vendor/ web/assets/vendor/

这是我应该备份供应商包的方式吗? Composer 似乎没有内置的可能性来恢复更新/安装。还有其他选择吗?

【问题讨论】:

  • *.lock 置于版本控制之下?这应该允许恢复到确切的依赖关系。只要您不在本地修改包...如果您需要还原,您应该已经缓存了包。

标签: php composer-php


【解决方案1】:

这不是作曲家的工作。

版本控制 composer.* 文件(以及任何其他依赖声明文件,如 symfony.lock 如果您在 Symfony 下工作,则由您决定。

或者甚至更安全,从依赖声明 + 检索到的依赖创建完整工件的副本(例如代码 + vendor 目录)。

在我们的一些项目中,需要这种敏感性,每个部署都是一个完全包含和版本化的映像。如果部署出现问题,我们总是可以返回旧映像。

在不太重要的项目上,只需将依赖声明文件放在版本控制上就足够了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-21
    • 2018-10-02
    • 1970-01-01
    • 2012-09-19
    • 2018-02-04
    • 1970-01-01
    • 2018-02-07
    相关资源
    最近更新 更多