Użycie migracji do wstawienia lub zmiany struktury tabeli nie jest dla mnie problemem. Ale mam problem z wymianą danych w tabeli przy użyciu modelu. Mój pomysł jest zrobić coś takiego:Nie można użyć modelu podczas migracji w Yii 1.x
public function up()
{
$models = MyModel::model()->findAll();
foreach ($models as $variable) {
$variable->property = str_replace('.', ',', $variable->property);
$variable->save();
}
}
Wydaje się, że jestem w stanie importować model, bo jestem coraz follwoing błąd:
*** applying m111010_084827_convert_point_2_comma
PHP Error[2]: include(MyModel.php): failed to open stream: No such file or directory
Gdy próbuję zaimportować Model wcześniej:
$modelClass = Yii::import('application.models.*');
następnie błąd jest:
*** 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
Gdzie jest problem? Co ja robię źle? W jaki sposób mam zaimportować model do migracji we właściwy sposób? A może powinienem zastąpić ciągi poleceniami SQL?
To może wydawać się oczywistym pytaniem, ale ... czy masz ustawiony prawidłowy model CACtiveRecord, czy określa on poprawną 'tableName()' i czy tabela istnieje w bazie danych? Ponieważ właśnie przeprowadziłem szybki test przechodząc przez niektóre modele podczas migracji, wydawało mi się, że to działa dobrze. – thaddeusmt
@thaddeusmt: tableName, modele i tabele miały rację. ale nigdy nie zdawałem sobie sprawy, że w config/console.php jest inna konfiguracja db. po tym jak to zmieniłem - zadziałało! dzięki .. – zonky
Ah! Tak, to trudne. Cieszę się, że to wymyśliliście! Mam "podstawowy" plik konfiguracyjny, którego używam do informacji DB, a następnie używam CMap :: mergeArray do łączenia go z moimi plikami konfiguracji web i konsoli, aby dziedziczyły te same informacje DB. – thaddeusmt