Arbeiten mit Doctrine Migrations

Migrations bilden die Veränderung der Datenbankstruktur in programmierter Form ab. Jede Strukturänderung wird in einer einzelnen (jeweils neuen) Migrationsdatei abgelegt, die Teil des Moduls ist.

Anwenden der noch nicht ausgeführten Migrations

Doctrine überwacht selbst, welche Migrationen schon ausgeführt wurden und verhindert damit mehrfache Ausführungen der selben Migration.

Für dieses Modul können Migrationen auf verschiedenen Arten ausgeführt werden:

  • durch Aktivieren des Moduls im Shopbackend oder
  • durch Ausführen aller Shopmigrationen über den OXID Migration Wrapper mit ./vendor/bin/oe-eshop-db_migrate migrations:migrate oder
  • durch Ausführen dieser Modulmigration über den OXID Migration Wrapper mit ./vendor/bin/oe-eshop-db_migrate migrations:migrate d3totp oder
  • durch Ausführen dieser Modulmigration über die Doctrine Migrations mit ./vendor/bin/doctrine-migrations migrate --configuration ./vendor/d3/oxid-twofactor-onetimepassword/migration/migrations.yml --db-configuration ./vendor/d3/oxid-twofactor-onetimepassword/migration/migrations-db.php

Erstellen eines Skeletons für die erste oder zusätzliche Migrationen

Passe die migrations.yml an Dein Modul an.

./vendor/bin/oe-eshop-doctrine_migration migrations:generate d3moduleid

Arbeite die angelegte Datei entsprechend Deinen Anforderungen um.

Abweichungen zwischen Doctrine Migrations und dem OXID Migration Wrapper

In den originalen Doctrine Migrations können keine Suiten angegeben werden. Dafür gibt es die Möglichkeit, die Richtung (up / down) und eine Zielversion anzugeben.

Bei OXID können Migrations ausschließlich aufwärts (up) und immer fix bis zur aktuellsten Version ausgeführt werden.