簡體   English   中英

Yii模型:將表名轉換為小寫

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM