SMF2 zu Discourse Migrationsproblem

Ich habe die Anleitungen befolgt und bin bis hierhin gelangt, komme aber an diesem Punkt nicht weiter. Ich habe sogar einen neuen Benutzer auf dem MySQL-Server mit einem nativen Passwort erstellt und es versucht, jedoch ohne Erfolg.

su discourse -c "bundle exec ruby script/import_scripts/smf2.rb /shared/smf2 -t UTC"
Lade bestehende Gruppen...
Lade bestehende Benutzer...
Lade bestehende Kategorien...
Lade bestehende Beiträge...
Lade bestehende Themen...
Traceback (most recent call last):
        7: from script/import_scripts/smf2.rb:701:in `<main>'
        6: from script/import_scripts/smf2.rb:28:in `run'
        5: from script/import_scripts/smf2.rb:28:in `new'
        4: from script/import_scripts/smf2.rb:62:in `initialize'
        3: from script/import_scripts/smf2.rb:274:in `create_db_connection'
        2: from script/import_scripts/smf2.rb:274:in `new'
        1: from /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/mysql2-0.5.3/lib/mysql2/client.rb:90:in `initialize'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/mysql2-0.5.3/lib/mysql2/client.rb:90:in `connect': RSA-Verschlüsselung wird nicht unterstützt – das caching_sha2_password-Plugin wurde mit GnuTLS-Unterstützung erstellt (Mysql2::Error)

Dies scheint ein Problem mit dem Skript zu sein, da ich den MySQL-Client im Container installieren und über die Kommandozeile auf die Datenbank im MySQL-Container zugreifen kann.

OK. Für alle, die darauf stoßen: Ich musste einiges tun, um dieses Import-Skript zum Laufen zu bringen.

Der MySQL-Docker-Container ist Version 8.

Das bedeutet, dass die Mariadb-Bibliothek, die die MySQL-Vorlage einbindet, aus irgendeinem Grund nicht funktioniert.

Was ich anders gemacht habe als unter https://meta.discourse.org/t/smf2-to-discourse-the-ultimate-guide/90314:

Ich habe die MySQL-Vorlagendatei nicht in die Konfigurationsdatei des Import-Docker-Containers aufgenommen.

Ich habe den Import-Container erstellt und mit ./launcher enter import hineingegangen.

Dann:

echo "gem 'mysql2'" >> Gemfile
wget https://dev.mysql.com/get/mysql-apt-config_0.8.17-1_all.deb
dpkg -i mysql-apt-config_0.8.17-1_all.deb

Dies enthält eine interaktive Abfrage, bei der Sie die Standardeinstellungen wählen können (MySQL 8 mit Tools).

Anschließend installierte ich die normale MySQL 8-Bibliothek und setzte den Build fort:

apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y libmysqlclient-dev
su discourse -c 'bundle config unset deployment'
su discourse -c 'bundle install --no-deployment --path vendor/bundle --jobs 4 --without test development'

Sobald das alles erledigt war, verlief der Rest gleich. Der Import läuft jetzt.

Die Discourse-Entwickler sollten die Import-Skripte eventuell anpassen, um dies zu berücksichtigen. Zumindest steht es jetzt in den Foren, falls andere stecken bleiben wie ich.

3 „Gefällt mir“