У меня возникает эта проблема, когда я добавляю столбец к одному из своих объектов и выпускаю его для производства, мне нужно перезапустить Apache, чтобы очистить кеш APC / APCU метаданных Doctrine.
Я пробовал все приведенные ниже команды, но ни одна из них у меня не сработала:
php -r "apc_clear_cache();"
php -r "apcu_clear_cache();"
sudo php app/console doctrine:cache:clear-metadata
sudo php app/console doctrine:cache:clear-query
sudo php app/console doctrine:cache:clear-result
Я получаю это сообщение об ошибке для --env = prod
sudo php app/console doctrine:cache:clear-metadata --env=prod
sudo php app/console doctrine:cache:clear-query --env=prod
sudo php app/console doctrine:cache:clear-result --env=prod
[LogicException]
Cannot clear APC Cache from Console, its share in the Web server memory and not accessible from the CLI.
Единственный способ обновить кеш Doctrine - это перезапустить сервер Apache, что иногда может быть проблемой.
Мои настройки кеша для Doctine в моем проекте Symfony:
doctrine:
orm:
metadata_cache_driver: apc
result_cache_driver: apc
query_cache_driver: apc
second_level_cache:
enabled: true
log_enabled: false
region_cache_driver: apc
Как я могу очистить кеш APC в этом случае, не перезагружая Apache каждый раз, когда я выпускаю новое обновление схемы в производство. Это еще хуже, если у вас есть много серверов за балансировщиком нагрузки.