yii-dbmigrations没有名为“performTransactional”的方法

时间:2011-01-31 00:32:49

标签: php yii yii-extensions

使用最新版本的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 个答案:

答案 0 :(得分:2)

好的,我找到了问题和解决方案。

我使用的是yii-dbmigration扩展,yii有自v1.1.6以来的迁移实现,所以当我运行迁移时,这两个版本是冲突的。

解决方案是,卸载扩展并使用新的本机迁移。

关于yii本地迁移功能和yii扩展db-migration的个人意见是,第二个更喜欢工作更容易和优雅,因为它在up / down方法上有很好的oop实现。

谢谢