Symfony 2 部署 - 缓存处理
Symfony 2 deployment - cache handling
我正在按照 link 中的说明部署我的 symfony2 应用程序。
我的问题与步骤 D 密切相关
D) Clear your Symfony Cache Make sure you clear (and warm-up) your
Symfony cache:
$ php app/console cache:clear --env=prod --no-debug
当我运行那个命令时,所有symfony缓存都被清除,包括学说缓存。
我的应用程序高度依赖条令缓存数据,所以我想知道是否有办法避免每次部署时都清除条令缓存。例如,我可以在应用程序代码中只部署一些小错误修复,是否需要每次都清除缓存?如果我在修复小错误后不清除缓存会怎样?
只是为了添加更多上下文,我的主要问题是条令缓存。因为学说缓存存储在主要的 symfony 缓存文件夹中,并且 cache:clear 转储该文件夹,所以我也丢失了我的学说缓存。如果我可以将学说缓存与主缓存文件夹(设置自定义路径)分开,那将解决我的问题。
也许您可以使用自动部署系统 Capifony,它的设置和创建非常简单 "releases"。
这意味着当您部署时,应用程序将存储到一个新的独立文件夹中,安装供应商,转储资产并清除缓存。此文件夹仅在这些过程完成后用于生产,因此您没有任何停机时间
强烈建议每次都清除缓存。比如你新建一个你依赖的class。如果您不清除缓存,自动加载器将不会加载您的新 class。当然,仅在生产模式下,因为 dev 的自动加载逻辑有点不同。
但是,您的问题没有单一的答案 - 与缓存连接的应用程序存在一些问题 "freshness"。您一定要在 database/entity 结构更改、路由和 classes 结构、注释、配置上清除它。在 prod env 中,它们经过预处理以提高性能 - 缓存后,原始值 (config/routes) 在下一次缓存清除之前不会被使用。
例如,当您进行一些设计修复时,您不需要清除所有缓存。您可以转到缓存目录并手动删除那些您想要删除的缓存文件,并保持 Doctrine 缓存不变。
我正在按照 link 中的说明部署我的 symfony2 应用程序。
我的问题与步骤 D 密切相关
D) Clear your Symfony Cache Make sure you clear (and warm-up) your Symfony cache:
$ php app/console cache:clear --env=prod --no-debug
当我运行那个命令时,所有symfony缓存都被清除,包括学说缓存。 我的应用程序高度依赖条令缓存数据,所以我想知道是否有办法避免每次部署时都清除条令缓存。例如,我可以在应用程序代码中只部署一些小错误修复,是否需要每次都清除缓存?如果我在修复小错误后不清除缓存会怎样?
只是为了添加更多上下文,我的主要问题是条令缓存。因为学说缓存存储在主要的 symfony 缓存文件夹中,并且 cache:clear 转储该文件夹,所以我也丢失了我的学说缓存。如果我可以将学说缓存与主缓存文件夹(设置自定义路径)分开,那将解决我的问题。
也许您可以使用自动部署系统 Capifony,它的设置和创建非常简单 "releases"。
这意味着当您部署时,应用程序将存储到一个新的独立文件夹中,安装供应商,转储资产并清除缓存。此文件夹仅在这些过程完成后用于生产,因此您没有任何停机时间
强烈建议每次都清除缓存。比如你新建一个你依赖的class。如果您不清除缓存,自动加载器将不会加载您的新 class。当然,仅在生产模式下,因为 dev 的自动加载逻辑有点不同。
但是,您的问题没有单一的答案 - 与缓存连接的应用程序存在一些问题 "freshness"。您一定要在 database/entity 结构更改、路由和 classes 结构、注释、配置上清除它。在 prod env 中,它们经过预处理以提高性能 - 缓存后,原始值 (config/routes) 在下一次缓存清除之前不会被使用。
例如,当您进行一些设计修复时,您不需要清除所有缓存。您可以转到缓存目录并手动删除那些您想要删除的缓存文件,并保持 Doctrine 缓存不变。