В yii-dbmigrations нет метода с именем "executeTransactional" - PullRequest
0 голосов
/ 31 января 2011

У меня возникла новая проблема с использованием последней версии yii-dbmigration, когда я запускаю миграцию, консоль показывает следующее сообщение и миграция не работает.

$ ./protected/yiic migrate
Migrations directory: protected/migrations/

=== Applying: m20110123200901_create_eav_table =================================
ERROR: m20110123200901_create_eav_table does not have a method named "performTransactional".

Код миграции:

<?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');
    }

}

Кто-нибудь знает, что происходит?

Спасибо.

Отредактировано

Привет, ребята, я нашел проблему, но я не знаю решения.

Проблема возникает в Yii v1.1.7-dev, когда я использую другую версию (например, v1.1.5-dev), миграции работают правильно.

Кто-нибудь знает, какисправить это?

Спасибо.

1 Ответ

2 голосов
/ 31 января 2011

Хорошо, ребята, я нашел проблему и решение.

Я использовал расширение yii-dbmigration, и в yii есть реализация миграций, начиная с v1.1.6, поэтому две версии конфликтовали, когда ябыли выполнены миграции.

Решения таковы: удалите расширение и используйте новую собственную миграцию.

Личное мнение о функции собственной миграции yii и db-миграции расширения yii заключается в том, чтовторой нравится более легкий и элегантный в работе, потому что он имеет отличную реализацию при методе вверх / вниз.

Спасибо

...