yii-dbmigrations non dispone di un metodo denominato "performTransactional"
-
27-10-2019 - |
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.
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