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.

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top