表" tablename"对于活跃的记录类" TableClass"在数据库中找不到

时间:2014-12-23 14:06:54

标签: php mysql caching yii

我有一个运行良好的网站,突然间它已经开始出现这个错误。所有需要数据库连接的页面都不起作用。我没有在网站上做任何事情,检查了所有配置文件,他们有正确的数据库连接。

我已经在某处读过yii缓存表的元数据,如果已满,则缓存是否会导致此错误?是这样吗?如果是这样,我如何刷新表的元数据缓存。我知道函数Yii :: app() - > schema-> refresh()但是应该调用那个函数?我也可以在Yii中禁用表格元数据的自动缓存吗?

如果这个问题出现原因,我可以知道是什么导致了这个问题吗?

2 个答案:

答案 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