← Zurück zu Notizen

Arbeiten mit Doctrine Migrations in Symfony


Doctrine Migrations ist ein Werkzeug, das Änderungen am Datenbankschema versioniert und nachvollziehbar verwaltet. Anstatt SQL-Befehle manuell auszuführen, wird jede Änderung an einer Entity in eine Migration-Datei umgewandelt, die ausgeführt (up) oder rückgängig gemacht (down) werden kann.

Um eine neue Migration basierend auf Entity-Änderungen zu erstellen:

php bin/console make:migration

Dieser Befehl erzeugt eine Migration-Datei im Verzeichnis migrations/. Vor dem Ausführen sollte der generierte Inhalt immer überprüft werden; manchmal erkennt Doctrine bestimmte Änderungen (z. B. einen geänderten Spaltentyp) nicht korrekt.

Um ausstehende Migrations auszuführen:

php bin/console doctrine:migrations:migrate

Ein einfaches Beispiel einer Migration-Datei:

public function up(Schema $schema): void
{
    $this->addSql('ALTER TABLE note ADD cover_image VARCHAR(255) DEFAULT NULL');
}

public function down(Schema $schema): void
{
    $this->addSql('ALTER TABLE note DROP cover_image');
}

Wichtiger Hinweis: In der Produktionsumgebung sollte vor jeder Migration immer ein Backup der Datenbank erstellt werden, da manche Änderungen (z. B. das Löschen einer Spalte) nicht wirklich rückgängig gemacht werden können, selbst wenn eine down()-Methode existiert.