5
使用遷移來插入或更改表結構對我來說不成問題。但是,使用模型更改表格中的數據時遇到了問題。我的想法是做這樣的事情:無法在Yii 1.x遷移中使用模型
public function up()
{
$models = MyModel::model()->findAll();
foreach ($models as $variable) {
$variable->property = str_replace('.', ',', $variable->property);
$variable->save();
}
}
看來,我是無法導入模型,因爲我得到follwoing錯誤:
*** 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命令替換字符串?
這可能看起來像一個明顯的問題,但是......你有適當的CACtiveRecord模型設置,它是否指定了正確的'tableName()',並且該表是否存在於數據庫中?因爲我剛剛在遷移中對一些模型進行了快速測試,所以對我來說似乎很好。 – thaddeusmt
@thaddeusmt:tableName,模型和表是正確的。但我從來沒有意識到在config/console.php是另一個數據庫配置。之後我改變了 - 它的工作!謝謝.. – zonky
啊!是的,這是一個棘手的問題。很高興你明白了!我有一個用於數據庫信息的「基礎」配置文件,然後使用CMap :: mergeArray將它與我的Web和控制檯配置文件結合起來,以便它們繼承相同的數據庫信息。 – thaddeusmt