Kein Budget dafür. Aber. Vielleicht.
Hat jemand dieses Problem beim Ausführen des Import-Skripts bemerkt?
Nachbearbeitung der Beiträge…
37785 / 48843 (77,4 %) Gestoppt*
Der Prozess wurde vor dem Abschluss abgebrochen. Wenn ich die Foren lade, scheinen die importierten Nachrichten vorhanden zu sein, aber ich mache mir Sorgen, dass der Vorgang nicht ordnungsgemäß abgeschlossen wurde und es zu Problemen kommen könnte.
Haben Sie irgendwelche Empfehlungen? Vielleicht ein Speicherüberlauf-Fehler? Kann ich das Skript einfach erneut ausführen, um dort fortzufahren, wo es aufgehört hat, oder wird versucht, doppelte Daten erneut zu importieren? Vielen Dank.
Führen Sie das Skript erneut aus. Es werden keine Daten dupliziert.
Vielen Dank, @pfaffman! Das hat super funktioniert.
Hallo,
zunächst einmal vielen Dank für diesen fantastischen Leitfaden. Ich schätze die Arbeit, die darin steckt, sehr.
Zu meinem Problem:
Ich habe Schwierigkeiten, beim Ausführen des Import-Skripts eine Verbindung zur Datenbank herzustellen, obwohl ich MariaDB verwende, um den vBulletin-Dump zu speichern, anstatt MySQL. Ich habe überprüft, dass MariaDB läuft, ich kann meinen vBulletin-Dump erfolgreich importieren, und ich habe den Benutzernamen, den Hostnamen und das Passwort im Skript vierfach kontrolliert, aber trotzdem keine Erfolg.
Ich habe das Gefühl, dass mir etwas Einfaches entgeht. Wenn mir jemand eine Richtung weisen könnte, wäre das sehr hilfreich.
Ich verwende folgende Versionen:
mysql2 0.5.2
mariadb-server-10.3
discourse master Git-Commit cb8fa46
Die vollständige Beschreibung finden Sie unten.
Wenn ich versuche, folgenden Befehl auszuführen:
apt-get update && apt-get install libmysqlclient-dev mysql-server-5.7
erhalte ich einen Fehler:
E: Package 'libmysqlclient-dev' hat keinen Installationskandidaten
E: Package 'mysql-server-5.7' hat keinen Installationskandidaten
Das ergibt Sinn, vielleicht wurden diese Pakete in der Zwischenzeit aus dem Repository entfernt.
Also führe ich stattdessen aus:
apt-get update && apt-get install mariadb-server-10.3 libmariadbd-dev
MariaDB funktioniert als direkte Ersetzung, was gut ist, da alle Schritte funktionieren, bis ich versuche, das Migrations-Skript auszuführen. Dann erhalte ich folgenden Fehler:
root@discourse:/src# su discourse -c 'bundle exec ruby script/import_scripts/vbulletin.rb'
root:@localhost möchte vb4
Lade bestehende Gruppen...
Lade bestehende Benutzer...
Lade bestehende Kategorien...
Lade bestehende Beiträge...
Lade bestehende Themen...
==================================================
Zugriff verweigert für Benutzer 'root'@'localhost'
Keine Verbindung zur Datenbank möglich.
Hostname: localhost
Benutzername: root
Passwort:
Datenbank: vb4
Bearbeiten Sie das Skript oder setzen Sie diese Umgebungsvariablen:
export DB_HOST="localhost"
export DB_NAME="vbulletin"
export DB_PW=""
export DB_USER="root"
export TABLE_PREFIX="vb_"
export ATTACHMENT_DIR '/pfad/zu/ihrem/Anhang-Ordner'
Beende.
Für die Berechtigungen:
root@discourse:/src# mysql
Willkommen im MariaDB-Monitor. Befehle enden mit ; oder \g.
Ihre MariaDB-Verbindungs-ID ist 59
Server-Version: 10.3.17-MariaDB-0+deb10u1 Debian 10
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab und andere.
Geben Sie 'help;' oder '\h' für Hilfe ein. Geben Sie '\c' ein, um die aktuelle Eingabezeile zu löschen.
MariaDB [(none)]> show grants;
+------------------------------------------------------------------------------------------------+
| Grants for root@localhost |
+------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED VIA unix_socket WITH GRANT OPTION |
| GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION |
+------------------------------------------------------------------------------------------------+
2 Zeilen in der Menge (0.000 sek)
Ich habe den Benutzernamen und das Passwort mehrfach überprüft und sogar manuell festgelegt.
Ich habe ein wenig weiter recherchiert und festgestellt, dass die Änderung des Basis-Images von Ubuntu 16.04 auf Debian zweifellos der Grund dafür ist, dass MySQL nicht mehr verfügbar ist. Dennoch bin ich verwirrt darüber, wie man mysql2 mit MariaDB verbinden kann.
Ich habe vor einiger Zeit einen PR eingereicht, der die mysql-dep.template.yml-Datei so anpasst, dass sie MariaDB verwendet. Ich habe dies bereits mehrfach genutzt.
Es scheint, als würdet ihr versuchen, kein Passwort zu verwenden? Ich empfehle die Verwendung eines Passworts. Das Skript geht davon aus, dass ein Passwort vorhanden ist.
Alles klar. Ich werde versuchen, ein Passwort festzulegen und zu sehen, ob das funktioniert. Soweit ich das verstanden habe, sollte das Import-Skript dennoch mit MariaDB funktionieren. Falls ja, werde ich die Fehlerbehebung fortsetzen. Vielen Dank für die schnelle Hilfe!
@pfaffman Das war’s! Vielen Dank. Sobald ich mein Forum in Ordnung gebracht habe, kann ich einen PR für eine VB3-Version einreichen, falls sie für jemanden nützlich sein sollte.
Dies ist auch meine Testinstanz, daher ist es in Ordnung, die Details zu veröffentlichen. Sie wird ohnehin wieder abgebaut ![]()
Vielen Dank an alle für die Hilfe, die Migration ist größtenteils gut verlaufen. Hier und da fehlten ein paar Anhänge, aber insgesamt lief alles hervorragend.
Für diejenigen, die dies in der Zukunft lesen: Ich habe von Vb3.8.7 migriert.
Ich musste einige Änderungen an der SQL-Abfrage in vbulletin.rb vornehmen, da meine Datenbankstruktur nicht exakt mit dem Skript übereinstimmte, aber sehr ähnlich war. Ich habe mich entschieden, auf die benutzerdefinierten Beschriftungen zu verzichten, um den Prozess voranzubringen.
Github-Diff: File fix other by canyon289 · Pull Request #1 · canyon289/discourse · GitHub
Für die MariaDB-Installation, die MySQL ersetzt, habe ich folgenden Befehl verwendet:
apt-get update && apt-get install mariadb-server-10.3 libmariadbd-dev
Und um mein MariaDB-Passwort von null auf einen Wert zu ändern, war dieser Link am umfassendsten:
Nochmals kann ich den Leuten in diesem Thread und allen Mitwirkenden an Discourse für Code und Hilfe nicht genug danken!
Ich habe gerade eine Migration abgeschlossen, bei der allen 2.000+ Themen eine Kategorie zugewiesen wurde, die von der vBulletin-4-Instanz geerbt wurde. Ich kann diese Kategorie nicht löschen und alle migrierten Beiträge wieder auf „Keine Kategorie ausgewählt
Führen Sie entweder eine erneute Migration durch oder ändern Sie die Kategorie dieser Themen. Bei so vielen müssen Sie dies über die Ruby-Befehlszeile tun.
Hallo,
ich bin mir bezüglich des Kontexts hier nicht sicher.
Kopieren Sie die Anhänge in Ihre Discourse-Instanz (prüfen Sie den Pfad in Ihren VB4-Einstellungen).
Kann mir bitte jemand helfen?
Hallo,
ich habe gesehen, dass es ein vBulletin-5-Skript gibt, kann aber dazu keine Rückmeldungen finden. Gelten die Informationen in diesem Thema auch dafür?
Vielen Dank!
Das Skript sollte sehr ähnlich funktionieren.
Ich führe einen Import für eine vB4-Installation durch, aber dieser schlägt beim Importieren der Unterkategorien fehl. Habt bitte etwas Geduld, ich bin noch ein Rails/Ruby-Anfänger.
Traceback (most recent call last):
20: from script/import_scripts/vbulletin.rb:943:in `<main>'
19: from /home/vagrant/discourse/script/import_scripts/base.rb:47:in `perform'
18: from script/import_scripts/vbulletin.rb:84:in `execute'
17: from script/import_scripts/vbulletin.rb:293:in `import_categories'
16: from /home/vagrant/discourse/script/import_scripts/base.rb:403:in `create_categories'
15: from /home/vagrant/discourse/script/import_scripts/base.rb:403:in `each'
14: from /home/vagrant/discourse/script/import_scripts/base.rb:422:in `block in create_categories'
13: from /home/vagrant/discourse/script/import_scripts/base.rb:454:in `create_category'
12: from /home/vagrant/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/suppressor.rb:48:in `save!'
11: from /home/vagrant/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/transactions.rb:319:in `save!'
10: from /home/vagrant/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/transactions.rb:366:in `with_transaction_returning_status'
9: from /home/vagrant/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/transactions.rb:212:in `transaction'
8: from /home/vagrant/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/connection_adapters/abstract/database_statements.rb:281:in `transaction'
7: from /home/vagrant/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/connection_adapters/abstract/transaction.rb:278:in `within_new_transaction'
6: from /home/vagrant/.rbenv/versions/2.6.5/lib/ruby/2.6.0/monitor.rb:235:in `mon_synchronize'
5: from /home/vagrant/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/connection_adapters/abstract/transaction.rb:280:in `block in within_new_transaction'
4: from /home/vagrant/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/connection_adapters/abstract/database_statements.rb:281:in `block in transaction'
3: from /home/vagrant/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/transactions.rb:375:in `block in with_transaction_returning_status'
2: from /home/vagrant/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/transactions.rb:319:in `block in save!'
1: from /home/vagrant/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/validations.rb:53:in `save!'
/home/vagrant/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/validations.rb:81:in `raise_validation_error': Validation failed: Slug is invalid (ActiveRecord::RecordInvalid)
Ich habe einige Debug-Ausgaben hinzugefügt, um das Problem zu analysieren. Der Wert für slug in der Kategorie ist nil.
Die Kategorie scheint gültig zu sein, wenn sie durch create_categories(children_categories) do |category| iteriert. Ich lasse auch opts, import_id und new_category (unmittelbar vor .save!) aus def create_category in base.rb protokollieren. Alles scheint gemäß den Erwartungen der Funktionen gültig zu sein.
Ist jemandem dies schon einmal begegnet?
37 / 53 ( 69.8%) [345139 items/min]
category:
{"forumid"=>355, "title"=>"News", "description"=>"RSS Feed", "displayorder"=>6, "parentid"=>205}
Entering create_category...
opts:
{:id=>355, :name=>"News", :position=>6, :description=>"RSS Feed", :parent_category_id=>6}
import_id:
355
new_category:
#<Category id: nil, name: "News", color: "BF1E2E", topic_id: nil, topic_count: 0, created_at: nil, updated_at: nil, user_id: -1, topics_year: 0, topics_month: 0, topics_week: 0, slug: nil, description: nil, text_color: "FFF", read_restricted: false, auto_close_hours: nil, post_count: 0, latest_post_id: nil, latest_topic_id: nil, position: 6, parent_category_id: 6, posts_year: 0, posts_month: 0, posts_week: 0, email_in: nil, email_in_allow_strangers: false, topics_day: 0, posts_day: 0, allow_badges: true, name_lower: nil, auto_close_based_on_last_post: false, topic_template: nil, contains_messages: nil, sort_order: nil, sort_ascending: nil, uploaded_logo_id: nil, uploaded_background_id: nil, topic_featured_link_allowed: true, all_topics_wiki: false, show_subcategory_list: false, num_featured_topics: 3, default_view: nil, subcategory_list_style: "rows_with_featured_topics", default_top_period: "all", mailinglist_mirror: false, minimum_required_tags: 0, navigate_to_first_post_after_read: false, search_priority: 0, allow_global_tags: false, reviewable_by_group_id: nil, required_tag_group_id: nil, min_tags_from_required_group: 1>
Traceback (most recent call last):
Unser Entwickler hat das Skript ausprobiert, kam aber nicht weit. Ist jemand daran interessiert, dies im Rahmen einer Beratung für uns zu übernehmen?
Klar, schick mir bitte eine PN.
Bitte entschuldigen Sie meine Unwissenheit, aber wie sende ich eine private Nachricht? Ich habe es nicht als offensichtlich empfunden. Alternativ können Sie mir auch direkt unter abboud@cedrus.com eine E-Mail schreiben.
Frage zum Import: Einige Beiträge in unserem auf vBulletin basierenden Forum enthalten Links zu anderen Beiträgen im selben Forum. Werden diese Links beim Import konvertiert? Wenn nicht, was passiert mit ihnen? Werden sie entfernt?
Ich kann mich nicht erinnern, ob die aktuelle Version sie überschreibt. Das Skript, das ich habe (und für das ich einen PR einreichen möchte), behebt sie.


