8

我需要更新生产服务器中的源文件(从存储库中提取和更新)、运行迁移并重新生成缓存资产。

Symfony 2 中是否有任何机制可以安全地执行此操作?就像将网站置于“维护模式”(应该抛出 503)之类的?

4

5 回答 5

5

我刚刚为 Symfony 2 找到了一个 Bundle,它在控制台中为您提供了 2 个额外的命令,以将您的应用程序置于维护模式。给你:https ://github.com/lexik/LexikMaintenanceBundle

于 2012-02-29T19:04:01.680 回答
3

我一直在尝试决定如何实现这一点。一方面,Symfony2 提供了不错的 prod 缓存,所以如果你没有破坏性地修改你的数据库模式(删除列或表等),你可能只需要更改模式,从你的 repo 部署,然后清除你的 prod缓存。这就是我大部分时间处理事情的方式。

另一方面,如果您确实想进入维护模式,您将需要一个对框架负载最小的解决方案(即,您可能不想启动内核),或者您正在击败无论如何,目的是:在您处理事情时减轻框架的负担。

如果是我,我可能会编写一个简单的维护脚本,它只设置一个 503 标头,可能会提供一些静态 html(从我的站点模板预先生成)并将其发送回用户,然后在我app.php的 to当我应该处于维护模式时使用它。这很丑陋,但它有效。

于 2011-11-10T20:32:39.213 回答
1

不知道如何在用户可能处于某种交易(例如购物)中间的较大网站上执行此操作,但对于较小的网站,您是否可以不只使用 .htaccess 文件(Web 目录中的那个)假设那是你的根)重定向到一些维护页面而不是 app.php。

于 2011-11-13T22:29:12.933 回答
1

我可以推荐使用部署器(http://deployer.org/)来部署你的 Symfony2 应用程序。这样您就不需要维护页面。该工具附带一个 symfony2 和 symfony3 模板已经包含在内。它会生成您的资产、预热缓存并跟踪您的发布目录。回滚到以前的版本也很容易。有一个“当前”符号链接,它始终指向您当前的发布目录。如果发布部署完成,此链接将更新到新创建的发布目录。

关于学说迁移,您需要为此编写自定义任务。

于 2016-03-10T11:59:49.950 回答
0

请查看 capifony http://capifony.org/

它对 Symfony2 有很好的支持。

于 2011-11-10T20:48:12.503 回答