"Die Quellendatenbank enthält keine erkennbare Drupal-Version."

9

Ich habe zwei Drupal-Sites in meiner lokalen Ubuntu Desktop 15.10 Apache2 (2.4.12) -Umgebung installiert: Eine ist eine Neuinstallation von Drupal 8 und die zweite ist eine Kopie einer vorhandenen Arbeits-Site, die mit Drupal 7 (hauptsächlich Kernmodule) erstellt wurde basiert, sehr bescheiden mittels Seiten). Beide Websites funktionieren überall problemlos.

Mein Ziel ist in erster Linie das Upgrade der Drupal 7-Site auf Drupal 8. Ich habe alle vorbereitenden Schritte wie das Konfigurieren derselben Sprachen durchgeführt. Mithilfe von Modulen auf ein Minimum beschränken (alle Module auf der D7-Site deinstallieren, die ich nach dem Upgrade problemlos zurückbringen könnte ), um sicherzustellen, dass an beiden Standorten usw. dieselben Module installiert sind, und jetzt möchte ich nur meine Drupal 7-Site in die neue Drupal 8-Site "transzendieren" (ich hoffe, es ist eine gute Formulierung).

Um mein Ziel zu erreichen, habe ich das Drupal-Upgrade- Modul auf meiner Drupal 8-Site installiert, bin zu localhost / sitename / upgrade gegangen und habe alle Details der Drupal 7-Site eingegeben.

Als ich auf die Schaltfläche "Upgrade überprüfen" geklickt habe, wurde folgende Fehlermeldung angezeigt:

Die Quellendatenbank enthält keine erkennbare Drupal-Version.

Ich habe diesen Fehler als exakten Ausdruck gegoogelt ("Fehler") und nur sehr wenige Ergebnisse gefunden. Die meisten von ihnen scheinen mir ein PHP-Programmierwissen zu erfordern, das ich noch erworben habe, daher kann ich nicht feststellen, ob der Fehler auf einen Fehler zurückzuführen ist (zumal dieses Modul noch in der starken Entwicklung ist) oder auf meinen Fehler in Verständnis des Konzepts \ der Funktionalität dieses Moduls.

  1. Welche Gründe gibt es dafür, dass das D8 Drupal-Upgrade-Modul die von mir bereitgestellte D7-Datenbank nicht "mag"? Vor allem, wenn die Drupal 7-Site sowohl online als auch lokal einwandfrei funktioniert.

  2. Wäre die Migration eine anständige Alternative für ein Upgrade, wenn ein Upgrade aus irgendeinem Grund nicht möglich ist? Wenn ja, was ist die einfachste Lösung für die Migration?

Geben Sie hier die Bildbeschreibung ein

Ich ging zu /var/www/html/benia/modules/migrate_upgrade/src/MigrationCreationTrait.php und tat:

-- return $version_string ? substr($version_string, 0, 1) : FALSE;

++ return 7;
++ return $version_string ? substr($version_string, 0, 1) : FALSE;

Dann wurde dieser Fehler oben auf dem Bildschirm angezeigt.

Geben Sie hier die Bildbeschreibung ein

JohnDoea
quelle
1
Ich kann nur sehen, dass es nicht gefällt, dass die Datenbank eine Drupal 7-Installation enthält, genau wie der Fehler sagt. In Ihrer Konfiguration muss etwas nicht stimmen, oder Sie haben es nicht dort importiert, wo Sie es erwarten.
Berdir
Warum wird es der DB nicht gefallen? Die D7-Site mit dieser DB funktioniert ziemlich gut ohne Probleme ...
JohnDoea
1
Oh und @Berdir mit "Konfiguration" meinst du die Conf im Drupal Upgrade Modul auf der D8 Site? Ich war mir sicher, dass die Details, die ich
eingegeben
Haben Sie schon 127.0.0.1 statt localhost ausprobiert? (Da es mit Ihrer aktuellen Upgrade-Konfiguration vielleicht überhaupt nicht zu einer Datenbank
gelangt
Tut mir leid, ich glaube ich habe verstanden ... Können Sie bitte umformulieren, was Sie geschrieben haben? Vielen Dank!!!
JohnDoea

Antworten:

4

Derzeit gibt es simplemeines Erachtens keine Option für ein Upgrade von 7 auf 8. Wie Sie im Versionshinweis sehen können:

Sobald Sie bereit sind, enthält Drupal 8 Core auch das Migrate-Modul, um vorhandene Drupal 7- und 6-Sites direkt auf Drupal 8 zu aktualisieren. Migrate ist in Drupal 8.0.0 als "experimentell" gekennzeichnet, wird jedoch in einer kommenden Version vollständig unterstützt. https://www.drupal.org/news/drupal-8.0.0-released

Ein bisschen technisch hinter den Kulissen: Von Version 7 bis 8 behalten sie das gleiche Konzept bei, wenn sie eine Baustelle erstellen (wie Knoten, Entität, Berechtigung, Ansichten ...), aber nicht den Kern. Ich würde sagen: Sie haben alles in OOP, Symfony-Komponente, Architektur geändert. Es gibt also keine Möglichkeit, upgradedirekt von einer anständigen Version auf 8.0 zu Ihrer Drupal-Site zu gelangen migrate. So migratingsollte der Prozess aussehen:

  1. Erstellen Sie die Site mit derselben Funktionalität wie Ihre d7-Site neu.
  2. Erstellen Sie das Thema neu (mithilfe der Zweigvorlage).
  3. Migrieren Sie Inhalte über

Die Kosten für diesen Prozess sind (leider) gleich, um eine neue Site oder mehr neu zu erstellen. Schauen Sie sich mit der Nummer 3 diesen Artikel in Phase 2 an: https://www.phase2technology.com/blog/upgrading-to-a-drupal-8-site/

trongdq
quelle
Ich habe begonnen, eine neu geschriebene Site in Drupal 8 manuell zu erstellen. Es ist in der Tat gut, dass viele der Module, die ich in D7 verwendet habe, in den Kern gegangen sind. Ich hoffe, dass die Migrationstechnologie in der Zeit, in der ich auf Drupal 9 migrieren werde, einen Zustand erreichen wird, in dem sie partieller sein kann, in verschiedenen Kontexten, Knoten-On-Page-Daten und Metadaten, Knoten-Weiterleitungen, Dateien, Ansichten, Panels, alles für sich so viel wie möglich ... den Prozess in verschiedene Phasen
aufzuteilen
Entschuldigung für die Nichtanwendung: Ich habe gerade meine Antwort unten mit spezifischen Details darüber gepostet, was höchstwahrscheinlich passiert ist. Das Kopfgeld ist natürlich bei dir.
JohnDoea
2

Ihre Fehlermeldung stimmt genau mit der Zeichenfolge in der Zeile unter http://cgit.drupalcode.org/migrate_upgrade/tree/src/MigrationCreationTrait.php#n40 im Code des Moduls "Drupal Upgrade" ( https: / /www.drupal.org/project/migrate_upgrade ).

Es zeigt, dass es sich nicht um einen Fehler handelt, sondern um eine "ausgelöste Ausnahme". Wenn ich mir die 3 vorhergehenden Zeilen dieses Codes anschaue, denke ich, dass es nur ein Problem beim Einrichten der Verbindung ist.

Vielleicht hilft das auch:

  • ein Zitat aus der Ausgabe https://www.drupal.org/node/2628440 (Kommentar Nr. 3):

    Um zu überprüfen, ob die Quellendatenbank eine gültige Drupal-Datenbank ist, und um die Version der Datenbank zu ermitteln, überprüft der Aktualisierungsprozess die Tabelle 'system'. Ist diese Tabelle in der Datenbank vorhanden, die Sie im Formular angegeben haben? Ist die Drupal-Installation in dieser Datenbank vorangestellt (und wenn ja, haben Sie das Präfix im Abschnitt "Erweiterte Optionen" des Formulars eingegeben)? ".

  • Gefolgt von Kommentar Nr. 4 in derselben Ausgabe: "Das Bereitstellen des Tabellenpräfixes hat das Problem behoben."

Und natürlich würde der Kommentar von benjy (danke!) Auch helfen, mehr Details über den tatsächlichen Fehler zu erhalten, auf den Sie stoßen , dh:

Sie können $ e-> getException () hier ausdrucken. cgit.drupalcode.org/migrate_upgrade/tree/src/… und dann wird der PDO-Fehler angezeigt

Sie können einen solchen Druck (vorübergehend) zwischen den Zeilen 122 und 123 in den über den Link angezeigten Code einfügen.

Gemeinschaft
quelle
Wie ich in der Frage erwähnt habe, habe ich nicht die PHP-Kenntnisse, um zu verstehen, was das Problem mit diesem riesigen PHP-Code ist ... Können Sie bitte die Frage bearbeiten und in einfachen Worten erklären, was eigentlich diese "Ausnahme, die ausgelöst wird" und was ist der schrittweise Weg, um damit umzugehen? Bitte so einfach wie möglich, ich fange gerade an, PHP zu probieren.
JohnDoea
@benos Es bedeutet einfach, dass sehr wahrscheinlich etwas sehr Triviales in Ihren Migrationseinstellungen falsch konfiguriert ist. Ein Tippfehler, ein falsches Passwort, eine falsche URL. Sowas in der Art.
Leymannx
@benos, Sie können $ e-> getException () hier ausdrucken. cgit.drupalcode.org/migrate_upgrade/tree/src/… und dann wird der PDO-Fehler angezeigt .
Benjamin
@leymannx Wenn ich 2 DBs lokal erstellt habe (eine für D7, eine für D8), sollte nur die von D7 genau die gleichen Details haben, ist die Online-Site, die ich aktualisieren möchte, richtig?
JohnDoea
@leymannx Ich habe alles neu erstellt. Die lokalen D7-Daten sind auf der Online-D7-Site genau identisch: Der Ordner der Site ist identisch. Der DB-Name und der Benutzername sind identisch, und die Kennwörter sind identisch. Ich habe auch das Präfix hinzugefügt und obwohl alles an Ort und Stelle zu sein scheint, erhalte ich immer noch den gleichen Fehler.
JohnDoea
0

Sobald Sie die Codebasis zwingen, das Lesen von {system} zu überspringen, stirbt sie, wenn die nächste Datenbanktabelle {field_config_instance} nicht gefunden wird. Mit anderen Worten: Es liest Ihre D7-Datenbank nicht. Vielleicht versucht es, den D8 zu lesen, vielleicht etwas ganz anderes, wie können wir das wissen? Höchstwahrscheinlich geben Sie die falsche DB-Konfiguration ein (z. B. befinden sich die beiden Standorte auf unterschiedlichen Servern, wobei der MySQL-Server auf beiden lokalen Hosts ist, localhost jedoch nicht auf demselben Server). Ich habe gerade sowohl das Migrate Upgrade Contrib-Modul als auch den Kerncode des Migrate-Moduls überprüft, und es wäre äußerst überraschend, wenn es einen Fehler in Bezug auf das Präfix geben würde, da beide ein gesamtes Array mit Datenbankeinstellungen behandeln, nicht Stück für Stück.

Es ist unmöglich zu sagen, wie Sie dies beheben können, ohne Zugriff auf Ihre Informationen zu haben. Es tut uns leid. Wenn ich könnte, würde ich dafür stimmen, aber da es ein Kopfgeld gibt, kann ich nicht. Wir können Ihnen nicht helfen und diese Frage wird anderen nicht helfen. Die einzig mögliche Hilfe ist folgende: Lesen und verstehen Sie Ihre Drupal 7-Einstellungsdatei und geben Sie dem Migrate Upgrade-Modul die richtigen Anmeldeinformationen (Die große Anzahl von Kommentaren zeigt bereits, dass dies nirgendwo hin führt.)

Eine mögliche längerfristige Lösung wäre eine Funktion im Contrib-Modul, mit der Benutzer ihre settings.php hochladen können, und dann könnten wir versuchen, diese zu verwenden. Das ist extrem zerbrechlich, aber ich denke, es ist einen Versuch wert. Wenn jemand Zeit hat, es zu codieren ...

Ich habe keine Ahnung, warum die Leute dies so stark befürwortet haben. Gibt es noch jemanden, der das gleiche Problem hat?


quelle
0

Es ist viel Zeit vergangen, seit ich dies gepostet habe, aber ich glaube, ich weiß jetzt, was das Problem war:

Ich habe 2-3 Module installiert gelassen, was ich (damals) für "so einfach" hielt, also war ich mir sicher, dass sie einen Migrationspfad haben, genau wie alle Kernmodule.

Wenn ich mich richtig erinnere, waren dies: Metatag und Redirect (Sie wechseln von D7 Globalredirect & Redirect zu Redirect in Drupal 8).

Ich habe diese nicht nur auf der D7-Site belassen, sondern auch auf der D8 installiert, sodass keine der Versionen meiner Site bei Bedarf nur für den Kern bestimmt war.

Es war meine erste Migration und ich habe diesen Fehler als absoluter Neuling im Projekt gemacht. Ich war wirklich davon überzeugt, dass "es nicht sein kann", dass diese Module keinen Migrationspfad haben (und wenn Sie daran denken, sollten sie es wirklich haben), aber dann stellte ich fest, dass normalerweise nur Kernmodule und so etwas vorhanden sind Andernfalls sollte ein benutzerdefinierter oder Contrib-Migrationspfad vorhanden sein.

Nur damit Sie wissen --- Diese und andere Module verfügen über Contrib-Migrationspfade, die Sie verwenden können, indem Sie sie mit diesem Migrationspfad patchen (Sie "injizieren" ihn mit dem Pfad in das Modul).

Jedenfalls war das damals bei mir nicht der Fall und ich war mir sicher, dass es mit dem System kommt ...

Ich habe mich schmerzlich geirrt und dies scheint mir der einzige Grund zu sein, warum die obige Migration fehlgeschlagen ist. Ich habe diese Annahme sogar mit einem kleinen Experiment bekräftigt, das ich vor meiner letzten erfolgreichen Migration vor etwa zwei Monaten durchgeführt habe.

JohnDoea
quelle
0

Sobald ich diese Fehlermeldung erhalten habe. Es stellte sich heraus, dass es sich um das von mir "drupal_" festgelegte $ db_prefix handelt. Sie sollten dies in erweiterte Optionen einfügen.

Grüße, Carlos Aleman

Pedro Paramo
quelle