Hi! I have a site running CakePHP v3, and we’re delivering meals to the elderly/vulnerable people in the midst of coronavirus, and a weird behavior I see from time seems to be rearing its ugly head again.
Basically, I have a dev server and a prod server, and I just added a column to my postgres database, and on dev, everything works fine, but on prod, it seems to ignore the fact I just added a new column. By this I mean, I try to select that column’s value, and on dev it populates, but on prod it returns null.
I am guessing it has something to do with model caching. It is possible that I have some other error, but I have seen this a couple other times and never did figure it out back then. I tried deleting the relevant model file in my tmp/cache directory but it didn’t seem to do anything.
Does this sound familiar to anyone else? Worst case I can probably just stick the relevant data into a column that already exists that I’m not using, but that’s bad practice obviously
Thanks!
Nate
try to refresh orm_cache
bin/cake orm_cache clear
Thanks for the quick reply!
Unfortunately this didn’t fix the problem for me
from your description this should be it, but well things happen you might try
-
bin/cake cache clear_all
if it wont help then:
- delete
/tmp/cache/models
dir
Hmmmm, got this when trying bin/cake cache clear_all
2020-03-20 21:25:08 Error: Fatal Error (1): APCuIterator::__construct(): APC must be enabled to use APCuIterator in
in app.php
you have set APCu cache somewhere and maybe even you are not using it
hmmmm, here is my cache settings:
'Cache' => [
'default' => [
'className' => 'Apcu',
'path' => CACHE,
'url' => env('CACHE_DEFAULT_URL', null),
],
/**
* Configure the cache used for general framework caching.
* Translation cache files are stored with this configuration.
* Duration will be set to '+2 minutes' in bootstrap.php when debug = true
* If you set 'className' => 'Null' core cache will be disabled.
*/
'_cake_core_' => [
'className' => 'Apcu',
'prefix' => 'myapp_cake_core_',
'path' => CACHE . 'persistent/',
'serialize' => true,
'duration' => '+1 years',
'url' => env('CACHE_CAKECORE_URL', null),
],
/**
* Configure the cache for model and datasource caches. This cache
* configuration is used to store schema descriptions, and table listings
* in connections.
* Duration will be set to '+2 minutes' in bootstrap.php when debug = true
*/
'_cake_model_' => [
'className' => 'Apcu',
'prefix' => 'myapp_cake_model_',
'path' => CACHE . 'models/',
'serialize' => true,
'duration' => '+2 minutes',
'url' => env('CACHE_CAKEMODEL_URL', null),
],
],
well then you probably have this module disabled for php in cli you would need to find php.ini for cli and enable it there
you might try to enable debug kit and there is also button to clear cache from web page