Domanda

Ho un nuovo problema utilizzando l'ultima versione di yii-dbmigration, quando eseguo la migrazione la console mostra il messaggio di seguito e la migrazione non funziona.

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

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

Il codice di migrazione è:

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

}

Qualcuno sa cosa succede?

Grazie.

Modificato

Ciao ragazzi, Ho trovato il problema, ma non conosco la soluzione.

Il problema si verifica su Yii v1.1.7-dev, quando utilizzo un'altra versione (come v1.1.5-dev) le migrazioni funzionano correttamente.

Qualcuno sa come risolverlo?

Grazie.

È stato utile?

Soluzione

Ok ragazzi, ho trovato il problema e la soluzione.

Stavo usando l'estensione yii-dbmigration e yii ha un'implementazione delle migrazioni dalla v1.1.6, quindi le due versioni erano in conflitto quando ho eseguito le migrazioni.

La soluzione è disinstallare l'estensione e utilizzare la nuova migrazione nativa.

Un'opinione personale sulla funzionalità di migrazione nativa di yii e sull'estensione db-migration dell'estensione yii è che alla seconda piace lavorare in modo più semplice ed elegante perché ha un'ottima implementazione oop sul metodo up / down.

Grazie

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top