it-swarm.com.de

Fehler beim Anzeigen der Liste der Taxonomiebegriffe

Ich erhalte einen "unerwarteten Fehler", wenn ich versuche, eine Liste von Taxonomiebegriffen anzuzeigen. Ich habe kürzlich auf 8.7 aktualisiert, obwohl ich das Gefühl habe, dass das Problem bereits vor dem Update aufgetreten ist. Hier ist der Fehler, wie er im Watchdog angezeigt wird:

Drupal\Core\Database\DatabaseExceptionWrapper: SQLSTATE [42000]: Syntaxfehler oder Zugriffsverletzung: 1064 Sie haben einen Fehler in Ihrer SQL-Syntax. Überprüfen Sie das Handbuch, das Ihrer MySQL-Serverversion entspricht, auf die richtige Syntax für die Verwendung von Near ') AS-Ausdruck FROM tfr INNER JOIN tr ON tfr. = tr. UND tr. = 0 INNER JOIN (S 'in Zeile 1: SELECT tfr.tid AS tid, MAX (tfr.) AS Ausdruck FROM {} tfr INNER JOIN {} tr ON tfr. = Tr. UND tr. = 0 INNER JOIN (SELECT t .tid AS tid, t.langcode AS langcode, MAX (t.) AS Ausdruck FROM {} t WHERE t. =: db_condition_placeholder_0 GROUP BY t.tid, t.langcode) mr ON tfr. = mr. AND tfr.langcode = mr.langcode GROUP BY tfr.tid; Array ([: db_condition_placeholder_0] => 1) in Drupal\taxonomy\TermStorage-> getTermIdsWithPendingRevisions () (Zeile 404 von/Applications/MAMP/htdocs/libnews/core/modules/taxonomy/src /TermStorage.php).

Und ich weiß nicht, ob dies damit zusammenhängt, aber ich erhalte auch eine Fehlermeldung, wenn ich versuche, meine Datenbank über drush zu aktualisieren:

Fehler: Aufruf einer Mitgliedsfunktion getKey () auf null in system_update_8702 () (Zeile 2278 von /Applications/MAMP/htdocs/libnews/core/modules/system/system.install) # 0

Dies liegt außerhalb meines Fachgebiets, daher bin ich ziemlich ratlos.

4
JOakland

Ich habe auch auf meinem Server einen ähnlichen Fehler erhalten. Ich musste die Funktion in TermStorage.php ändern, damit sie funktioniert.

Nur eine Warnung, dieser Kern hackt und sollte zurückgesetzt werden, sobald er im Kern behoben ist. Ersetzen Sie getTermIdsWithPendingRevisions () durch Folgendes:

  public function getTermIdsWithPendingRevisions() {
$table_mapping = $this->getTableMapping();
$id_field = $table_mapping->getColumnNames($this->entityType->getKey('id'))['value'];
$revision_field = $table_mapping->getColumnNames($this->entityType->getKey('revision'))['value'];
$rta_field = $table_mapping->getColumnNames($this->entityType->getKey('revision_translation_affected'))['value'];
$langcode_field = $table_mapping->getColumnNames($this->entityType->getKey('langcode'))['value'];
$revision_default_field = $table_mapping->getColumnNames($this->entityType->getRevisionMetadataKey('revision_default'))['value'];

$query = $this->database->select($this->getRevisionDataTable(), 'tfr');
$query->fields('tfr', [$id_field]);
$query->addExpression("MAX(tfr.$revision_field)", $revision_field);

$query->join($this->getRevisionTable(), 'tr', "tfr.$revision_field = tr.$revision_field AND tr.$revision_default_field = 0");

$inner_select = $this->database->select($this->getRevisionDataTable(), 't');
$inner_select->condition("t.$rta_field", '1');
$inner_select->fields('t', [$id_field, $langcode_field]);
$inner_select->addExpression("MAX(t.$revision_field)", $revision_field);
$inner_select
  ->groupBy("t.$id_field")
  ->groupBy("t.$langcode_field");

$query->join($inner_select, 'mr', "tfr.$revision_field = mr.$revision_field AND tfr.$langcode_field = mr.$langcode_field");

$query->groupBy("tfr.$id_field");
return 0;
//return $query->execute()->fetchAllKeyed(1, 0);

}}

1
Albert

Dies hängt mit den Entitätsdefinitionen zusammen, die für Taxonomiebegriffe nicht aktualisiert werden. Ihre Problemumgehung behebt den Fehler, aber die Entitäten werden immer noch nicht aktualisiert. Schauen Sie sich den Statusbericht (/ admin/reports/status) an, in dem Sie diesen Fehler finden:

Nicht übereinstimmende Entitäts- und/oder Felddefinitionen Die folgenden Änderungen wurden in den Entitätstyp- und Felddefinitionen festgestellt. Taxonomiebegriff Der Entitätstyp Taxonomiebegriff muss aktualisiert werden. Das Feld Revisions-ID muss installiert sein. Das Feld Revisionserstellungszeit muss installiert sein. Das Revisionsbenutzerfeld muss installiert sein. Das Meldungsfeld Revisionsprotokoll muss installiert sein. Das Feld Standardrevision muss installiert sein. Das betroffene Feld für die Revisionsübersetzung muss installiert sein.

Derzeit wurde keine Lösung gefunden, da Drupal 8.7.x das Drush-Entity-Update nicht mehr unterstützt.

Irgendeine Hilfe ?

1
jbfelix

Ich habe Drupal Core Version 8.7.2 und drush updb -y hat den Fehler behoben:

taxonomiemodul: Aktualisieren Sie die Taxonomiebegriffe, damit sie überarbeitet werden können. Entfernen Sie die Eigenschaft 'Hierarchie' aus den Vokabeln.

0
Achraf JEDAY

Versuchen Sie, ein Update mit sites.com/update.php durchzuführen. Es hat dieses Problem für mich gelöst.

0
Alexey Dyomin