it-swarm.com.de

Wie benenne ich ein Feld um?

Mit Drupal 7) hatten wir das Modul Field Rename , das jedoch noch nicht nach Drupal portiert wurde.

Welche SQL-Magie wird also benötigt, um ein Feld in Drupal 8) umzubenennen?

7
MrPaulDriver

Ich hatte das Unglück, dies vorher tun zu müssen: P, und mein Rat wäre wie folgt:

Vergessen Sie das Umbenennen des vorhandenen Feldes. Der Maschinenname ist auf mehrere schwer zu bearbeitende Stellen verteilt, und Sie werden wahrscheinlich einige verpassen und seltsame Fehler erhalten. Wenn Sie beispielsweise nur die Tabellen und die Konfiguration umbenennen, gibt die Feld-API eine Anpassung aus, wenn sie versucht, die alten Tabellen zu löschen, und feststellt, dass sie bereits verschwunden sind. Die Schemainformationen werden im Schlüsselwertspeicher gespeichert und können nicht von Grund auf neu erstellt werden. Wenn Sie also manuelle Änderungen vornehmen, kann dies leicht zu einem fehlerhaften Zustand führen.

Erstellen Sie stattdessen das Feld mit dem richtigen Computernamen neu, kopieren Sie die Daten mit SQL und löschen Sie schließlich das alte Feld.

INSERT INTO node__field_new SELECT * FROM node__field_old;
INSERT INTO node_revision__field_new SELECT * FROM node_revision__field_old;
13

In Bezug auf den neuesten Kommentar von StevanRS ist dies nicht einfach so, denn wenn Sie nur nach dem Umbenennen importieren, schlägt dies fehl, da das ursprüngliche Feld nicht mehr vorhanden ist. Also, hier ist mein Vorschlag:

  • Exportieren Sie die Konfiguration. Speichern Sie alle diese Dateien mit einer Konfiguration für das Feld. * *
  • Löschen Sie dieses Feld auf drupal UI).
  • Konfiguration erneut exportieren (Feld bereits entfernt)
  • Kopieren Sie umbenannte Dateien erneut in den Konfigurationsordner.
  • Dann kannst du richtig importieren :)

Typische Dateien, die Sie speichern müssen:

  • field.field.yourentity.yourfield
  • field.storage.yourentity.yourfield
  • core.entity_form_display.yourentity.yourfield
  • core.entity_view_display.yourentity.yourfield
1
Ivan