2017-06-26 2 views
0

Ich habe Plugin mit einer Migration erstellt. Mein version.yaml istWie Rollback Plugin-Migration in OctoberCMS?

1.0.1: First version of user 
1.0.2: 
    - Added new fields to User model 
    - alter_table_users_add_contact_fields.php 

Meine Updates Verzeichnis eine Migrationsdatei alter_table_users_add_contact_fields.php enthält.

<?php 

namespace Mnv\Reminder\Updates; 

use Schema; 
use October\Rain\Database\Updates\Migration; 

class CreateTableNewsRead extends Migration 
{ 
    protected $table = 'mnv_news_read'; 

    public function up() 
    { 
     Schema::create($this->table, function($table) 
     { 
      $table->engine = 'InnoDB'; 
      $table->increments('id'); 

      $table->integer('news_id'); 
      $table->foreign('news_id')->references('id')->on('rainlab_blog_posts')->onUpdate('cascade')->onDelete('cascade'); 

      $table->integer('user_id'); 
      $table->foreign('user_id')->references('id')->on('users')->onUpdate('cascade')->onDelete('cascade'); 

      $table->timestamp('read_at'); 

      $table->index([ 
       'news_id', 
       'user_id', 
      ]); 

      $table->index([ 
       'user_id', 
       'news_id', 
      ]); 
     }); 
    } 

    public function down() 
    { 
     Schema::dropIfExists($this->table); 
    } 
} 

Ich wurde erfolgreich ausgeführt wurde diese Migration Befehl console php artisan october:up.

Aber jetzt will ich diese Migration rückgängig zu machen. Wie ich sehe, gibt es keine Informationen über diese Migration in Tabelle migrations. Daher kann ich diesen Migrations-Usins-Befehl php artisan migrate:rollback nicht zurücksetzen.

fand ich, dass Informationen über die Version Plugin system_plugin_versions in Tabelle enthält. Ich wurde gelöscht manuell meine Tabelle mnv_news_read und manuell gelöscht entsprechen Datensätze aus system_plugin_versions und system_plugin_history Tabellen.

drop table mnv_news_read; 
delete from system_plugin_history where code = 'Mnv.Reminder'; 
delete from system_plugin_versions where code = 'Mnv.Reminder'; 

Danach habe ich tryed php artisan october:up wieder laufen. Es wurde erfolgreich abgeschlossen.

Meine Frage ist, wie man richtig Plugins Migration rückgängig zu machen?

Antwort

2

Eine Möglichkeit, Migrationen von Rollback ist über das builder plugin in Admin Control Panel (stellen Sie sicher, dass dieses Plugin zuerst installieren, wenn Sie nicht bereits haben).

  1. den Builder-Plugin-Menü wählen (von oben auf der Seite)
  2. Plugin auswählen (indem Sie auf den Pfeil ‚>‘ klicken)
  3. von der linken Seite im Menü wählen Versions
  4. das Wählen Version, die Sie zurücksetzen möchten
  5. Klicken Sie auf die Rollback version Schaltfläche