在Yii 1.x中无法在迁移中使用模型


Unable to use model in migration in Yii 1.x

使用迁移插入或更改表结构对我来说没有问题。但是,我有一个问题,以改变使用模型表内的数据。我的想法是这样做:

public function up()
{
    $models = MyModel::model()->findAll();
    foreach ($models as $variable) {
        $variable->property = str_replace('.', ',', $variable->property);
        $variable->save();
    } 
}

似乎,我无法导入模型,因为我得到以下错误:

*** applying m111010_084827_convert_point_2_comma
PHP Error[2]: include(MyModel.php): failed to open stream: No such file or directory

如果我尝试导入模型之前:

$modelClass = Yii::import('application.models.*');

则错误为:

*** applying m111010_084827_convert_point_2_comma
exception 'CDbException' with message 'The table "{{mymodel}}" for active record class "MyModel" cannot be found in the database.' in C:'...'yii'framework'db'ar'CActiveRecord.php:2276

问题在哪里?我做错了什么?我应该如何在迁移中正确导入模型?或者我应该用SQL命令替换字符串?

迁移肯定是一组SQL命令。我建议使用SELECT REPLACE命令。见http://www.1keydata.com/sql/sql-replace.html

但是,只要包含所有必需的php文件,您所采用的方法也应该有效。您可能还需要您的基本模型:

   Yii::import('application.models.*');
   Yii::import('application.models.base.*');

并确保你编辑config/console.php有正确的数据库信息