it-swarm.com.de

Kann ich übrig gebliebene field_deleted_ * -Tabellen löschen?

Ich habe viel von field_deleted_* Tabellen in der Datenbank und keine drush cr oder laufende Cron entfernt sie. Ist es in Ordnung, sie einfach aus der Datenbank zu entfernen? Wie kann ich sagen Drupal, um sie anderweitig zu entfernen?

(enter image description here

Bearbeiten: Per 4k4 Tipp zur Fehlerbehebung:

➜  default git:(HUHLR-172) ✗ drush ev "var_dump(\Drupal::state()->get('field.storage.deleted'))"
array(0) {
}

Das heisst:

Wenn dies leer ist, können Sie auch die Tabellen in der Datenbank entfernen, da Drupal hat ohne diese Informationen keine Chance, die Hash-Schlüssel der Tabellennamen zu erraten.

4
Kevin

Nein, dies ist keine gute Idee, da nicht nur die Datenbanktabellen entfernt werden müssen. Das Löschen dieser Tabellen ohne vorherige Überprüfung ihrer Verwendung (siehe Fehlerbehebung unten) führt zu diesem Fehler Cron-Fehlermeldung. Tabelle oder Ansicht nicht gefunden: 1146

Die gelöschten Felder werden von cron gelöscht, jedoch nur 50 Zeilen pro Lauf. Wenn Sie den Prozess beschleunigen möchten, führen Sie cron häufiger aus oder erhöhen Sie die Stapelgröße in field.settings.yml:

purge_batch_size: 50

Anstelle von cron können Sie field_purge_batch() über die Befehlszeile ausführen, dann mit einem höheren Stapellimit, z. B. 1000 oder wie viele Zeilen Sie haben und löschen können, ohne ein Speicher-/Zeitlimit zu erreichen:

drush ev "field_purge_batch(1000)"

Fehlerbehebung

Wenn cron oder der Befehl drush keine Auswirkung haben und einige der Zeilen nicht gelöscht werden (wenn noch weitere Zeilen in den Tabellen vorhanden sind), prüfen Sie, ob für diese Tabellen noch Feldspeicher registriert sind:

drush ev "var_dump(\Drupal::state()->get('field.storage.deleted'))"

Wenn dies leer ist, können Sie auch die Tabellen in der Datenbank entfernen, da Drupal hat keine Chance, die Hash-Schlüssel der Tabellennamen ohne diese Informationen zu erraten.

Wenn dies nicht leer ist, können Sie diese Ausgabe der Feldspeicherdefinition (en) verwenden, um dies weiter zu debuggen (siehe Kommentar von @MarioSteinitz).

10
4k4