zon*_*nky 5 php database migration data-migration yii
使用迁移来插入或更改表结构对我来说没有问题.但是,我有一个问题是使用模型更改表中的数据.我的想法是做那样的事情:
public function up()
{
$models = MyModel::model()->findAll();
foreach ($models as $variable) {
$variable->property = str_replace('.', ',', $variable->property);
$variable->save();
}
}
Run Code Online (Sandbox Code Playgroud)
看来,我无法导入模型,因为我遇到了以下错误:
*** applying m111010_084827_convert_point_2_comma
PHP Error[2]: include(MyModel.php): failed to open stream: No such file or directory
Run Code Online (Sandbox Code Playgroud)
如果我之前尝试导入模型:
$modelClass = Yii::import('application.models.*');
Run Code Online (Sandbox Code Playgroud)
然后错误是:
*** 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
Run Code Online (Sandbox Code Playgroud)
问题出在哪儿?我究竟做错了什么?我该如何以正确的方式导入迁移模型?或者我可能应该用SQL命令替换字符串?
迁移绝对是一组 SQL 命令。我建议使用 SELECT REPLACE 命令。请参阅http://www.1keydata.com/sql/sql-replace.html
但是,只要包含所有必需的 php 文件,您所采用的方法也应该有效。您可能还需要您的基本模型:
Yii::import('application.models.*');
Yii::import('application.models.base.*');
Run Code Online (Sandbox Code Playgroud)
并确保编辑 config/console.php 以获取正确的数据库信息。
| 归档时间: |
|
| 查看次数: |
3526 次 |
| 最近记录: |