Um eine Migration für OctoberCMS für ein neues Plugin zu erstellen, wechselt man in der Kommandozeile zuerst in den Ordner von OctoberCMS. Dort führt man dann den Befehl

php artisan create:migration MyName.MyPlugin CreateMyNewTableCode-Sprache: CSS (css)

aus. Die Werte für MyName, MyPlugin und CreateMyNewTable sollten natürlich angepasst werden. Im Order plugins/myname/myplugin/updates sollte eine neue Datei zu finden sein, die create_my_new_table.php heißen müsste (oder zumindest so ähnlich). Die Datei müsste in etwa so aussehen:

<?php namespace StarkesWeb\LiveUserCounter\Updates;

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

/**
 * CreateVisitorTable Migration
 *
 * @link https://docs.octobercms.com/3.x/extend/database/structure.html
 */
return new class extends Migration
{
    /**
     * up builds the migration
     */
    public function up()
    {
        Schema::create('starkesweb_liveusercounter_visitor', function(Blueprint $table) {
            $table->id();
            $table->timestamps();
        });
    }

    /**
     * down reverses the migration
     */
    public function down()
    {
        Schema::dropIfExists('starkesweb_liveusercounter_visitor');
    }
};
Code-Sprache: HTML, XML (xml)

Nun kann man in der up()-Funktion die Spalten eintragen, die man braucht. Da OctoberCMS auf Laravel basiert, lohnt sich ein Blick in die entsprechende Doku.

Damit die Migration auch angewendet ist, muss man diese noch in der updates/version.yaml Datei eintragen (https://docs.octobercms.com/3.x/extend/system/plugins.html#plugin-version-file):

v1.0.1: 
  - First version of MyPlugin
  - create_my_new_table.phpCode-Sprache: CSS (css)

Wenn die updates/version.yaml angepasst wurde, muss man noch den Befehl

php artisan plugin:refresh MyName.MyPluginCode-Sprache: CSS (css)

aufrufen.