yii-dbmigrations não tem um método chamado “performTransactional”
-
27-10-2019 - |
Pergunta
Tenho um novo problema ao usar a versão mais recente do yii-dbmigration. Quando executo a migração, o console mostra a mensagem abaixo e a migração não funciona.
$ ./protected/yiic migrate
Migrations directory: protected/migrations/
=== Applying: m20110123200901_create_eav_table =================================
ERROR: m20110123200901_create_eav_table does not have a method named "performTransactional".
O código de migração é:
<?php
class m20110123200901_create_eav_table extends CDbMigration {
public function up() {
$t = $this->newTable('eav');
$t->primary_key('id');
$t->integer('section_id');
$t->integer('entry_id');
$t->integer('field_id');
$t->string('attribute');
$t->text('value');
$t->datetime('created_at');
$t->datetime('updated_at');
$this->addTable($t);
}
public function down() {
$this->removeTable('eav');
}
}
Alguém sabe o que acontece?
Obrigado.
Editado
Oi pessoal, Encontrei o problema, mas não sei a solução.
O problema ocorre no Yii v1.1.7-dev, quando estou usando uma outra versão (como v1.1.5-dev) as migrações funcionam direito.
Alguém sabe como consertar?
Obrigado.
Solução
Ok pessoal, encontrei o problema e a solução.
Eu estava usando a extensão yii-dbmigration e o yii tem uma implementação de migrações desde a v1.1.6, então as duas versões eram conflitantes quando eu estava executando as migrações.
A solução é desinstalar a extensão e usar a nova migração nativa.
Uma opinião pessoal sobre o recurso de migração nativa yii e a extensão yii db-migration é que o segundo gosta mais fácil e elegante de trabalhar porque tem uma ótima implementação oop no método up / down.
Obrigado