Wo werden Maschinennamen von Feldern außerhalb der Datebank gespeichert?
Eingetragen von Lissy01 (278)
am 09.08.2021 - 07:05 Uhr in
am 09.08.2021 - 07:05 Uhr in
Bei einer Drupal 7 Installation gab es plötzlich eine Fehlermeldung beim Anlegen eines neuen Feldes im Inhaltstyps.
Ursache war vermutlich eine kurze Nichterreichbarkeit des MySQL-Servers.
Beim nochmaligen Versuch wurde gemeldet, der Maschinennamen sei bereits vergeben, obwohl das Feld nicht angezeigt wird.
Deshalb wurde ein Datenbank-Backup eingespielt, aber nicht die Dateien.
Es kann immer noch kein Feld gleichen Namens angelegt werden.
Wo werden nochmal bei D7 die Feldnamen außerhalb der Datenbank abgelegt?
Macht das ein bestimmtes Modul?
- Anmelden oder Registrieren um Kommentare zu schreiben
Bei Drupal 7 wird keine
am 09.08.2021 - 15:53 Uhr
Bei Drupal 7 wird keine Konfigurationsinformation außerhalb der Datenbank gespeichert. Unter "Reports" gibt es eine Liste der existierenden Felder und wo sie verwendet werden. Das ist der einzige Ansatz, den ich sehe.
Nachtrag: diese Liste wird vom Modul field_info erzeugt.
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Hätte ich auch gesagt.
am 09.08.2021 - 16:08 Uhr
Hätte ich auch gesagt.
LG Regina Oswald
-------------------------
Montviso - Internetdienstleistungen
http://www.montviso.de
Wurde die Datenbank vor Einspielen des Backups gelöscht?
am 09.08.2021 - 23:36 Uhr
Ich gehe davon aus, daß das Feld aufgrund des Fehlers teilweise in der Datenbank schon angelegt wurde.
Deshalb wurde ein Datenbank-Backup eingespielt, aber nicht die Dateien.
Wenn man ein Backup über bestehende Daten schreibt, werden nur die Tabellen überschrieben, die im Backup vorhanden sind. Wenn man das nicht macht, können Tabellen, die nicht zu dem System-Zustand passen verhindern, daß Datenbank-Updates oder Konfigurations-Anpassungen funktionieren. So etwas kann auch passieren, wenn man Konfigurationen oder Updates versucht auszurollen auf ein System und dies dann z.B. aufgrund einer Inkompatibilität abgebrochen wird und eben ein Backup wieder eingespielt wird. Meistens fällt der Fehler erst dann auf, wenn der nächste Roleout Anlauf genommen wird, wann auch Immer das ist.
Auf der anderen Seite sollten Drupal-Datenbank-Backups immer sowohl die Datenbank-Struktur als auch die Daten enthalten, vor allem, wenn man z.B. Cache-Tabellen vom Backup ausnimmt. Macht man das nicht via Drush kann man das auch via Mysqldump auch in zwei Exportes machen. Das macht Drush auch so und packt bei Exports in ein SQL-File und komprimiert es erst danach (wenn Komprimierung genutzt wird). In unserem Backup-System erzeugen wir zwei Files (structure.sql.gz und data.sql.gz), da wir dann dies Dump direkt via Pipe komprimieren können. Aber wichtig ist zu verstehen, daß Datenbank-Backups. im Grunde auch nur text.Dateien sind, die neben Daten auch programmier-Anweisungen enthalten (sollten) zum Erzeugen der Datenbank-Struktur. Damit ist es dann möglich ein Backup in leere Datenbanken zu schreiben. Praktisch ist dann auch, daß das Löschen der ganzen Datenbank erheblich schneller geht als das Löschen der einzelnen Tabellen. Denn da es dafür kein Standard SQL-Befehl gibt, leert Drupal/Drush eine Datenbank via "Suche alle Tabellen und lösche dann jede einzelne". Aber wenn der CLI-Benutzer kein Recht zum Löschen und (Neu-)Anlegen der Datenbank hat, geht es nicht anders (aber eben langsamer).
Ergänzung:
Falls meine Vermutung stimmt, daß es nun fehlerhaft angelegte Tabellen oder Daten gibt, aber das Backup von davor nicht mehr genutzt werden kann aufgrund neuer Daten, läuft es wohl leider auf eine direkte Datenbank-Korrektur hinaus. Aber das sollte man noch mehr als alles andere sehr sorgfältig vorbereiten in Test-Systemen. Empfehlenswert ist da auch, entsprechende SQL-Befehle zu erarbeiten und dann via Drush einzuspielen. Zur Vorbereitung kann man zwar mit GUI-Tools für eine Datenbank arbeiten, aber damit würde ich nur in Notfällen an Live-Datenbanken arbeiten, wenn alles andere nicht funktioniert.
# DrupalCenter-Moderator # https://www.drupal.org/u/c-logemann
# CTO der Nodegard GmbH: Tech. Concepts | Security + Availability Operations / Wir unterstützen IT-Abteilungen, Agenturen, Freiberufler:innen
Danke an @Wla und an
am 10.08.2021 - 05:53 Uhr
Danke an @Wla und an @C_Logemann.
C_Logemann, ich denke das Datenbank-Backup war komplett. Also alle Tabellen
Der Kunde hat gestern Abend noch mal ein älteres Komplett-Backup eingespielt.
Interessant war wirklich die Frage, ob diese Felddaten unter D7 auch in den Files gespeichert werden.