我有一个运行良好的网站,突然间它已经开始出现这个错误。所有需要数据库连接的页面都不起作用。我没有在网站上做任何事情,检查了所有配置文件,他们有正确的数据库连接。
我已经在某处读过yii缓存表的元数据,如果已满,则缓存是否会导致此错误?是这样吗?如果是这样,我如何刷新表的元数据缓存。我知道函数Yii :: app() - > schema-> refresh()但是应该调用那个函数?我也可以在Yii中禁用表格元数据的自动缓存吗?
如果这个问题出现原因,我可以知道是什么导致了这个问题吗?
答案 0 :(得分:0)
您可以尝试拨打
Yii::app()->cache->flush();
删除应用程序中的所有缓存,并确保缓存是问题,并允许您的应用程序继续工作(如果时间对您来说是重要的因素)。
遗憾的是,我无法帮助您进行表元数据缓存。希望别人会。
答案 1 :(得分:0)
如果要清除架构缓存,则可以使用如下:
Yii::app()->schema->getTable();
Yii::app()->schema->refresh();
关于您的问题何时调用此功能。每当您认为已经修改了表结构/架构(如添加/删除任何新列等)时,您应该运行此命令。
由于模式的更改不会一直发生,您可以在Yii中将其写为CLI脚本并调用它。
关于你的问题我可以禁用Yii中表格元数据的自动缓存吗? ..是的你可以。
在main.php
配置文件的“db”组件下,如果将值设置为'schemaCachingDuration' => 3600,
,则表示已启用它。如果你删除它,那么你将指示不缓存Schema。
参考:http://www.yiiframework.com/doc/blog/1.1/en/final.deployment