Frage

Ich habe ein neues Problem mit der neuesten Version von yii-dbmigration. Wenn ich die Migration ausführe, zeigt die Konsole die folgende Meldung an und die Migration funktioniert nicht.

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

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

Der Migrationscode lautet:

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

}

Weiß jemand, was passiert?

Danke.

Bearbeitet

Hallo Leute, Ich habe das Problem gefunden, kenne aber die Lösung nicht.

Das Problem tritt auf dem Yii v1.1.7-dev auf. Wenn ich eine andere Version (wie v1.1.5-dev) verwende, funktionieren die Migrationen ordnungsgemäß.

Weiß jemand, wie man das Problem behebt?

Danke.

War es hilfreich?

Lösung

Ok Leute, ich habe das Problem und die Lösung gefunden.

Ich habe die Erweiterung yii-dbmigration verwendet, und yii hat seit Version 1.1.6 eine Implementierung von Migrationen, sodass die beiden Versionen beim Ausführen der Migrationen in Konflikt standen.

Die Lösung besteht darin, die Erweiterung zu deinstallieren und die neue native Migration zu verwenden.

Eine persönliche Meinung zu der nativen yii-Migrationsfunktion und der db-Migration der yii-Erweiterung ist, dass die zweite einfacher und eleganter zu arbeiten ist, da sie eine hervorragende Implementierung der Up / Down-Methode bietet.

Danke

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top