Модель Yii: преобразовать имя таблицы в нижний регистр

Существующее приложение, использующее Yii, прекрасно работает с базой данных, в которой все таблицы начинаются с заглавной буквы (да, я знаю, не очень хороший сценарий, но это так), например, Users, Таким образом, имя таблицы, указанное в активной модели, также Users,

Однако мне пришлось развернуть приложение на другом сервере, и там сценарий базы данных автоматически создал таблицы в базе данных в нижнем регистре. Теперь имя таблицы в коде в модели Yii Users в то время как фактическое имя в базе данных users который в конечном итоге взрывается во время выполнения, поскольку Yii не может найти таблицы в базе данных.

Я мог бы пройтись по всем моделям и вручную изменить прописные буквы на строчные, однако, должен ли быть разумный способ сделать это, я считаю?

0

Решение

сначала обновите строку ниже в вашем файле my.cnf или my.ini на новом сервере, который должен быть 1 на вашем новом сервере, поэтому либо просто закомментируйте эту запись, либо установите 0-

lower_case_table_names = 0

Затем снова восстановите резервную копию на этом сервере.

Примечание. Существующие базы данных не будут работать, поэтому необходимо восстановить всю базу данных из резервной копии старого сервера.

0

Другие решения

Вы можете сделать это путем обновления файла CAIIRecord фреймворка yii в

path : yii/framework/ar/CActiveRecord.php

измените функцию tableName на

public function tableName()
{
return strtolower(get_class($this));
}

но это изменение повлияет на все другие проекты yii.

0

По вопросам рекламы [email protected]