Wie aktualisiere ich neue Migrationen im Drupal 8-Migrationsmodul?

10

Beim Schreiben von Drupal 8-Migrationsprozessen kann ich neue Migrationsprozesse nur aktualisieren, wenn ich das benutzerdefinierte Migrationsmodul neu installiere. Drush Cr funktioniert nicht.

Erläuterung:

Ich habe ein Modul, dh : cm_migrations, das 2 Migrationen hat:

  • cm_users
  • cm_tags

Mit drush mssehe ich:

Group: beer     Status  Total  Imported  Unprocessed  Last imported       
 cm_users        Idle    3      3         0            2016-02-09 16:56:25 
 cm_tags         Idle    4      0         4                                

Ich schreibe einen neuen Migrationsprozess:

  • cm_beers

Ich führe aus drush cr; drush msund sehe die gleiche Tabelle wie zuvor.

Nur wenn ich deinstalliere und installiere, cm_migrationskann ich die drei Migrationsprozesse sehen:

Group: beer     Status  Total  Imported  Unprocessed  Last imported       
 cm_users        Idle    3      3         0            2016-02-09 16:56:25 
 cm_tags         Idle    4      0         4                          
 cm_beers        Idle    4      0         4              

Gibt es einen Hinweis darauf, wie ich die Migrationsprozesse aktualisieren kann, ohne das Modul neu zu installieren?

Vielen Dank

Ignacio Sánchez
quelle
Außerdem kann ich sagen, dass migrate.migration.cm_beers.ymldie Migration nicht fehlschlägt , wenn ich den Migrationsprozess ausführe, den Inhalt von lösche und den Prozess erneut ausführe. Der Inhalt der yaml-Datei scheint irgendwo zwischengespeichert zu sein.
Ignacio Sánchez

Antworten:

18

Ich fand das funktionierte für mich

drush config-import --partial --source = modules / custom / migrate_module / config / install /

Peter J Lord
quelle
Hallo, das obige gibt den folgenden Fehler: Das Quellverzeichnis existiert nicht. Die Quelle ist kein Verzeichnis.
Harshal
5

Dafür gibt es ein Modul. Da normalerweise die yml-Dateien nur bei der Installation geladen werden.

Mit diesem Modul können Sie definieren, welche Modulkonfigurationsdateien automatisch importiert werden.

https://www.drupal.org/project/config_devel

Siehe auch diesen Blog-Beitrag: https://blog.liip.ch/archive/2016/05/04/using-the-new-drupal-8-migration-api-module.html

Entwickeln Sie Ihre eigenen Drupal 8-Migrationsmodule und bekämpfen Sie Caching-Probleme

Sie haben gelernt, dass die gesamte Migrationszuordnung jetzt in Yaml-Dateien erfolgt. Aber wie wäre es, wenn Sie Ihre eigenen Migrations-Yaml-Dateien schreiben?

Leider gibt es einige Fallstricke für neue Drupal 8-Entwickler. Aufgrund der Konfigurationsverwaltungsschnittstelle ( https://www.drupal.org/documentation/administer/config ) von Drupal 8 werden alle yml-Dateien im Verzeichnis "config / install" nur bei der Installation des Moduls importiert.

Dies ist sehr unpraktisch, wenn Sie neue Konfigurationsdateien entwickeln möchten. Um dies zu beheben, kann ein Modul „Konfigurationsentwicklung“ ( https://www.drupal.org/project/config_devel ) installiert werden, das die Caching-Probleme behebt. Es ist möglich, bei jeder Anfrage bestimmte yml-Dateien zu importieren. Leider werden Drush-Befehle noch nicht unterstützt. Wir müssen also alle Yaml-Dateien, die wir importieren möchten, in einen neuen Abschnitt in unserer module.info.yml einfügen.

config_devel:
 install:
   - migrate_plus.migration.page_node
   - migrate_plus.migration.menu_item
   - migrate_plus.migration_group.liip

Anschließend können wir nach dem Aktualisieren der yml-Datei die folgenden Befehle ausführen. Dadurch wird die neue Konfigurationsdatei in die Konfigurationsverwaltungsoberfläche importiert.

drush cdi <module_name>
drush cr
FLIEGE
quelle
Ich kann das nicht zum Laufen bringen, und die Dokumentation fehlt. Können Sie uns etwas mehr Informationen geben? drupal.org/node/2845304
Michael Mallett
5

Migrationen sollten sich im MODULENAME/migrationsUnterverzeichnis befinden. Nach dem Ändern einer Migrationskonfiguration drush crreicht ein einfaches aus, um die Änderungen zu übernehmen.

Ein Konfigurationsderiver verwandelt eine Migrationskonfiguration wieder in ein Migrations-Plugin.

Siehe diesen Änderungsdatensatz: Migrationen sind Plugins anstelle von Konfigurationsentitäten

mpp
quelle
2

Ich hatte mit dem gleichen Problem zu kämpfen: Wie aktualisiere ich die Migrationskonfiguration während der Entwicklung? Folgendes habe ich erreicht:

drush cdi1 path-to-config-dir-form-site-root/your-config.yml

config-devel-import-oneDer Befehl ( cdi1kurz) dient zum Importieren einer einzelnen Konfiguration in die aktive Konfiguration. Dies ist der oben erwähnte Teil des Moduls config_devel.

Artreaktor
quelle
1

Ich hatte keinen Erfolg mit der Lösung von FLY. Musste auch migrate_tools deinstallieren, um yaml's zu aktualisieren. Und kein Glück mit devel_config.

Ich habe diese aktualisierten Konfigurationen gefunden:

$ drush @site_alias pmu mymodule, migrate_tools, migrate_plus -y
$ drush @site_alias en mymodule, migrate_tools, migrate_plus -y
s6712
quelle
0

Nach der Lösung von Peter J Lord können Sie Ihrer Datei settings.php auch ein Konfigurationsverzeichnis (für neue oder aktualisierte ymls) hinzufügen. z.B:

$config_directories['fresh'] = 'sites/default/fresh';

Platzieren Sie neue XML-Dateien in diesem Verzeichnis und importieren Sie die neuen Konfigurationseinstellungen mit dem Befehl config-import von drush:

drush cim fresh --partial 
edg
quelle
-1

Ich habe festgestellt, dass manchmal keine der oben genannten Arbeiten. Sogar sie alle kombinieren. Ich könnte jedoch migrate_tools dazu verleiten, mir einen Einblick zu geben.

Anscheinend wird geprüft, ob die yml-Datei gültig ist, bevor sie aufgelistet wird. Versuchen Sie, den Importer auszuführen (ja, auch wenn er nicht mit angezeigt wird $ drush ms).

Meine Migration wurde als Produkte bezeichnet, also habe ich: $ drush mim products

Migration failed with source plugin exception: The &quot;int&quot; plugin does not exist.

Wenn Sie diesen Fehler beheben (in meinem Fall int in integer ändern) und dann der obigen Antwort von @FLY folgen, wird die Migration angezeigt. Schade, dass der Fehler nicht aufgetreten ist und nur lautlos fehlgeschlagen ist, aber das ist ein anderes Thema. ;-);

PS Ich hätte dies als Kommentar gepostet, aber ich habe noch nicht genug Punkte.

Firfin
quelle
-2

In der Antwort von FLY oben drush cdi <module_name>sollte nun sein drush cde <module_name>.

Carole
quelle
2
drush cde exportiert die Konfiguration und überschreibt, was Sie haben. Das wollen wir nicht. Wie wird das akzeptiert?
Michael Mallett