[英]Yii Model: convert table name to lower case
使用Yii的現有應用程序可以很好地與數據庫配合使用,該數據庫的所有表都以大寫字母開頭(是的,我知道,這不是一個好方案,但實際上是這樣),例如Users
。 因此,活動模型中指定的表名稱也是Users
。
但是,我必須將應用程序部署在另一台服務器上,數據庫腳本在那里自動以小寫形式創建了數據庫中的表。 現在,Yii模型中代碼中的表名是“ Users
而數據庫中的實際名稱是“ users
,由於Yii在數據庫中找不到表,最終在運行時被炸毀。
我可以瀏覽所有模型並手動將大寫字母更改為小寫字母,但是,我認為應該有一種更聰明的方法來做到這一點?
首先在新服務器上的my.cnf或my.ini文件中的行下面進行更新,該文件在新服務器中應為1,因此只需注釋此條目或將其設置為0-
lower_case_table_names = 0
然后再次在該服務器上還原您的備份。
注意:現有的databsae無法正常工作,因此需要從舊服務器備份中再次還原整個數據庫。
您可以通過更新yii框架中的CActiveRecord文件來實現
path : yii/framework/ar/CActiveRecord.php
將tableName函數更改為
public function tableName()
{
return strtolower(get_class($this));
}
但是此更改將影響所有其他yii項目。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.