Okay, eine kurze Zusammenfassung.
Ich bin ein Freiwilliger, der bei der Migration eines Forums hilft, das derzeit auf vbulletin3 läuft.
Auf einer Staging-Umgebung, beginnend mit einem Datenbank-Dump (20 GB, Sie haben richtig gelesen).
Führen Sie das Upgrade auf vBulletin 5 durch. Dies dauerte 5-6 Stunden, aber es hat funktioniert. Die Version ist vBulletin 5.4.
Einige Bereinigungen der Benutzernamen wurden vorgenommen, damit sie von Discourse akzeptiert werden.
Jetzt habe ich Docker Discourse installiert und mich lose an dieser Anleitung für die Vorbereitung orientiert. Lose bedeutet, dass die meiste davon überflüssig oder veraltet war, aber es half, eine Vorstellung davon zu bekommen, was zu tun ist.
Ich bin an dem Punkt angelangt, an dem ich buchstäblich blind werde, da ich fast keine Ruby-Programmiererfahrung habe.
Die relevanten Teile, nachdem die Installation abgeschlossen war, bin ich mit ./launcher enter app in den Container eingestiegen, dann:
freetds-devundlibmariadb-devhinzugefügt- Die Gemfile bearbeitet, um die
php_serialize-Gem hinzuzufügen. - Von der Shell aus
export IMPORT=1ausgeführt, um die Umgebung für den Import einzustellen. - Als
discourse-Benutzerbundle install --no-deployment --without test --without development --path vendor/bundleausgeführt.
Folgender Fehler trat auf:
You are trying to install in deployment mode after changing
your Gemfile. Run `bundle install` elsewhere and add the
updated Gemfile.lock to version control.
If this is a development machine, remove the /var/www/discourse/Gemfile freeze
by running `bundle config unset deployment`.
The list of sources changed
The dependencies in your gemfile changed
You have added to the Gemfile:
* mysql2
* redcarpet
* php_serialize
* sqlite3 (~> 1.3, >= 1.3.13)
* ruby-bbcode-to-md
* reverse_markdown
* tiny_tds
* csv
* parallel
Also weiter mit:
bundle config unset deploymentund erneutes Ausführen des vorherigen Befehls- Überprüft, ob sowohl
mysql2als auchphp_serializevorhanden waren (was sie waren) - Die alten Foren-Avatare hinzugefügt (keine Anhänge zu importieren) und die Verzeichnisse dem
discourse-Benutzer in seinem eigenen/home/discoursezugeordnet. script/import_scripts/vbulletin5.rbbearbeitet, um die Referenz für die Verbindung zur DB zu ändern.- Als Benutzer
discoursebundle exec ruby script/import_scripts/vbulletin5.rbausgeführt.
Dies gab mir einen Fehler bezüglich tzinfo Integer values not supported zurück, der hier in diesem Discourse erwähnt wurde.
Loading existing groups...
Loading existing users...
Loading existing categories...
Loading existing posts...
Loading existing topics...
importing groups...
41 / 41 (100.0%) [2294 items/min] ]
importing users
Traceback (most recent call last):
15: from script/import_scripts/vbulletin5.rb:726:in `<main>'
14: from /var/www/discourse/script/import_scripts/base.rb:47:in `perform'
13: from script/import_scripts/vbulletin5.rb:46:in `execute'
12: from script/import_scripts/vbulletin5.rb:79:in `import_users'
11: from /var/www/discourse/script/import_scripts/base.rb:916:in `batches'
10: from /var/www/discourse/script/import_scripts/base.rb:916:in `loop'
9: from /var/www/discourse/script/import_scripts/base.rb:917:in `block in batches'
8: from script/import_scripts/vbulletin5.rb:98:in `block in import_users'
7: from /var/www/discourse/script/import_scripts/base.rb:264:in `create_users'
6: from /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rack-mini-profiler-3.0.0/lib/patches/db/mysql2/alias_method.rb:8:in `each'
5: from /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rack-mini-profiler-3.0.0/lib/patches/db/mysql2/alias_method.rb:8:in `each'
4: from /var/www/discourse/script/import_scripts/base.rb:265:in `block in create_users'
3: from script/import_scripts/vbulletin5.rb:110:in `block (2 levels) in import_users'
2: from script/import_scripts/vbulletin5.rb:718:in `parse_timestamp'
1: from /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/tzinfo-2.0.5/lib/tzinfo/timezone.rb:575:in `utc_to_local'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/tzinfo-2.0.5/lib/tzinfo/timestamp.rb:138:in `for': Integer values are not supported (ArgumentError)
@Haddoqs Vorschlag war, eine Zeile von Time.zone.at(@tz.utc_to_local(timestamp)) in Time.zone.at(timestamp) zu ändern.
Es wird auch vorgeschlagen, lastvisit in die Benutzerabfrage aufzunehmen, da es sonst zu einem weiteren Fehler kommt, was ich auch getan habe.
Wenn ich nun die Migration mit bundle exec ruby script/import_scripts/vbulletin5.rb starte, erhalte ich Folgendes:
Loading existing groups...
Loading existing users...
Loading existing categories...
Loading existing posts...
Loading existing topics...
importing groups...
41 / 41 (100.0%) [120217 items/min]
importing users
Traceback (most recent call last):
13: from script/import_scripts/vbulletin5.rb:727:in `<main>'
12: from /var/www/discourse/script/import_scripts/base.rb:47:in `perform'
11: from script/import_scripts/vbulletin5.rb:46:in `execute'
10: from script/import_scripts/vbulletin5.rb:79:in `import_users'
9: from /var/www/discourse/script/import_scripts/base.rb:916:in `batches'
8: from /var/www/discourse/script/import_scripts/base.rb:916:in `loop'
7: from /var/www/discourse/script/import_scripts/base.rb:917:in `block in batches'
6: from script/import_scripts/vbulletin5.rb:80:in `block in import_users'
5: from script/import_scripts/vbulletin5.rb:723:in `mysql_query'
4: from /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rack-mini-profiler-3.0.0/lib/patches/db/mysql2/alias_method.rb:22:in `query'
3: from /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/mysql2-0.5.4/lib/mysql2/client.rb:147:in `query'
2: from /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/mysql2-0.5.4/lib/mysql2/client.rb:147:in `handle_interrupt'
1: from /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/mysql2-0.5.4/lib/mysql2/client.rb:148:in `block in query'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/mysql2-0.5.4/lib/mysql2/client.rb:148:in `_query': You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'CASE WHEN u.scheme='blowfish:10' THEN token (Mysql2::Error)
WHEN u.scheme='lega' at line 2
An diesem Punkt bin ich etwas ratlos. Kann mir jemand helfen?

