CodeIgniter 4: Migrationen und Seeder für die Datenbank

CodeIgniter-4-Migrationen und Seeder mit korrekten Spark-Befehlen, gültigen PHP-Beispielen und Schutzmaßnahmen für Daten.

CodeIgniter 4: Migrationen und Seeder für die Datenbank

CodeIgniter-4-Migrationen und Seeder mit korrekten Spark-Befehlen, gültigen PHP-Beispielen und Schutzmaßnahmen für Daten.

Versioniertes Schema

Migrationen beschreiben schrittweise Änderungen am Schema. Dateien in app/Database/Migrations tragen einen Zeitstempel und eine eindeutige Klasse: up() wendet Änderungen an, down() nimmt sie zurück. Die Tabelle migrations protokolliert ausgeführte Schritte. Prüfen Sie die Verbindung und sichern Sie vorhandene Daten vorher.

Migration erzeugen

Starten Sie php spark make:migration CreateNewsTable im Projektverzeichnis. Der Befehl erzeugt ein Gerüst; ergänzen Sie up() und down() wie im Beispiel. Forge erstellt news mit Primärschlüssel und drei Feldern. down() löscht Tabelle und Daten.

<?php
// app/Database/Migrations/YYYY-MM-DD-HHMMSS_CreateNewsTable.php
namespace App\Database\Migrations;

use CodeIgniter\Database\Migration;

class CreateNewsTable extends Migration
{
    public function up()
    {
        $this->forge->addField([
            'id' => [
                'type' => 'INT', 'constraint' => 11,
                'unsigned' => true, 'auto_increment' => true,
            ],
            'title' => ['type' => 'VARCHAR', 'constraint' => 255],
            'slug' => ['type' => 'VARCHAR', 'constraint' => 255],
            'text' => ['type' => 'TEXT'],
        ]);
        $this->forge->addKey('id', true);
        $this->forge->createTable('news');
    }

    public function down()
    {
        $this->forge->dropTable('news');
    }
}

Ausführen und prüfen

php spark migrate führt ausstehende Migrationen im Namespace App aus; php spark migrate:status zeigt den Stand. Für alle konfigurierten Namespaces gibt es php spark migrate --all. Prüfen Sie Datenbankgruppe und Namespace. Ein notwendiger Befehl migrate:latest existiert hier nicht.

Rollback und Refresh

php spark migrate:rollback setzt Migrationen auf den Ausgangszustand zurück; mit -b wählen Sie einen Batch. php spark migrate:refresh führt Rollback und danach alle Migrationen aus. Beides kann Daten zerstören; verwenden Sie es für Testdatenbanken oder erst nach Prüfung von Sicherung und Wiederherstellung.

Beispiel-Seeder

Ein Seeder erweitert CodeIgniter\Database\Seeder und besitzt run(). Erzeugen Sie die Vorlage mit php spark make:seeder NewsSeeder und fügen Sie Beispieldaten wie gezeigt ein. php spark db:seed NewsSeeder führt ihn aus. Ohne Klassennamen werden nicht automatisch alle Dateien ausgeführt. Wiederholte Aufrufe erzeugen ohne Eindeutigkeitsregel oder Existenzprüfung Duplikate.

<?php
// app/Database/Seeds/NewsSeeder.php
namespace App\Database\Seeds;

use CodeIgniter\Database\Seeder;

class NewsSeeder extends Seeder
{
    public function run()
    {
        $this->db->table('news')->insertBatch([
            ['title' => 'Sample one', 'slug' => 'sample-one', 'text' => 'Demo text'],
            ['title' => 'Sample two', 'slug' => 'sample-two', 'text' => 'Demo text'],
        ]);
    }
}

Zusammenarbeit

Versionieren Sie Migrationen und Seeder; bereits anderswo angewendete Migrationen werden durch neue Dateien ergänzt statt verändert. Referenzdaten benötigen Regeln für Updates und Wiederholbarkeit. Keine personenbezogenen Daten in Beispiel-Seedern. Testen Sie Migration und Rückweg auf Staging vor dem Produktiveinsatz.

Quellen

CodeIgniter-Dokumentation: https://codeigniter4.github.io/CodeIgniter4/dbmgmt/migration.html ; Seeder: https://codeigniter4.github.io/CodeIgniter4/dbmgmt/seeds.html .

Teilen

Was ist Ihre Reaktion?

Gefällt mir Gefällt mir 0
Gefällt mir nicht Gefällt mir nicht 0
Liebe Liebe 0
Lustig Lustig 0
Wütend Wütend 0
Traurig Traurig 0
Wow Wow 0