it-swarm.com.de

Stellen Sie ein gelöschtes Feld wieder her

Ich habe einen Inhaltstyp mit 4 Feldern, von denen jedes eine Begriffsreferenz ist. Es sind 100 Knoten mit jeweils 4 Termreferenzen zugeordnet. Ich habe versehentlich eines dieser Felder aus admin> Struktur> Inhaltstypen> Mycontent-Typ ... gelöscht, was dazu führte, dass alle 100 Knoten den Begriff Referenz verloren, den dieses verlorene Feld enthielt.

Nach der Installation des Moduls Database Admin konnte ich feststellen, dass die Datenbank für mein gelöschtes Feld noch vorhanden war und in "field_deleted_field_74" umbenannt wurde.

  1. Mit mysql konnte ich diese Datenbank wieder in "field_data_field_originalname" umbenennen - d. H. Mit dem ursprünglichen Computernamen für das gelöschte Feld
  2. Außerdem konnte ich den Wert der gelöschten Spalte in dieser Datenbank von '1' auf '0' ändern.

Ich habe das oben genannte mit der anderen 'Geister'-Datenbank gemacht, die ich gefunden habe und die so etwas wie "field_revision_field_74" heißt ...

Mein Problem ist jetzt, dass mein umbenanntes Feld weder als bereits vorhandenes Feld in der Anzeige meiner Felder zum Verwalten von Inhaltstypen noch in der Liste admin> Berichte> Felder angezeigt wird. Wenn ich 'drush field-info fields' ausführe, fehlt es auch.

Wie bringe ich es zurück? Ich gehe davon aus, dass es eine andere Datenbank gibt, die darauf verweist und die ich bearbeiten muss.

Vielen Dank!

11
iain maitland

Eine gute Frage, und überraschenderweise gibt es keinen einfacheren Weg, ein gelöschtes Feld zurückzusetzen, da die Daten noch verfügbar sind.

Vorausgesetzt, Sie haben:

  1. Die Tabellen field_deleted_ * wurden wieder in field_data_field_myfield und field_revision_field_myfield umbenannt (letzteres ebenfalls wichtig).
  2. Das Flag 'Gelöscht' wurde in den entsprechenden Datentabellen von 1 auf 0 aktualisiert.

Es gibt auch

  • field_config

Die Hauptfeldkonfiguration

  • field_config_instance

Die Feldkonfiguration für ein bestimmtes Entitätspaket.

Möglicherweise müssen Sie dort auch das Flag "Gelöscht" anpassen:

z.B:

UPDATE field_config SET deleted = 0 where field_name = 'field_my_deleted_field';
UPDATE field_config_instance SET deleted = 0 where field_name = 'field_my_deleted_field';
TRUNCATE TABLE cache_field;
14
David Thomas