Migration eines Vanilla-Forums zu Discourse

/var/www/discourse# RAILS_ENV=production ruby script/import_scripts/vanilla.rb /shared/export.txt
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/activerecord-7.0.4.1/lib/active_record/connection_adapters/postgresql_adapter.rb:81:in `rescue in new_client’: Wir konnten Ihre Datenbank nicht finden: discourse. Diese finden Sie in der Datenbankkonfigurationsdatei unter config/database.yml.

Ich habe die Gemfile übersprungen, aber jetzt bekomme ich diesen Fehler. Irgendwelche Vorschläge

Habe diesen Fehler behoben.. indem ich ein Passwort hinzugefügt und die Datei database.yml eingerichtet habe.. und jetzt zum nächsten Fehler: Laden vorhandener Gruppen…
Laden vorhandener Benutzer…
Laden vorhandener Kategorien…
Laden vorhandener Beiträge…
Laden vorhandener Themen…
Datei wird analysiert…
Datei wird gelesen…
script/import_scripts/vanilla.rb:88:in gsub': ungültige Byte-Sequenz in UTF-8 (ArgumentError) from script/import_scripts/vanilla.rb:88:in read_file’
from script/import_scripts/vanilla.rb:47:in parse_file' from script/import_scripts/vanilla.rb:25:in execute’
from /var/www/discourse/script/import_scripts/base.rb:47:in perform' from script/import_scripts/vanilla.rb:295:in

Das deutet darauf hin, dass Ihre Datenbank (oder ein Teil davon) nicht in UTF-8 ist.

Sie können googeln, wie Sie Ihre Datenbank in UTF-8 bekommen. Vielleicht ist sie in einer anderen Kodierung und Sie können sie übertragen, oder vielleicht enthält sie fehlerhafte Zeichen.

EDIT: Es liest die “vanilla csv”-Datei (was auch immer das ist) und sie ist nicht UTF-8-kodiert, was viel einfacher zu beheben ist als die Datenbank. Ich weiß immer noch nicht genau, was ich Ihnen sagen soll, aber es gibt einige seltsame Zeichen darin, die nicht als UTF-8 erkannt werden, und Sie müssen herausfinden, wie Sie das beheben können.

jetzt bekomme ich das…

importing categories…
script/import_scripts/vanilla.rb:140:in import_categories': private method select’ called for nil:NilClass (NoMethodError)

@root_category = @categories.select { |c| c[:category_id] == "-1" }.first
                            ^^^^^^
    from script/import_scripts/vanilla.rb:28:in `execute'
    from /var/www/discourse/script/import_scripts/base.rb:47:in `perform'
    from script/import_scripts/vanilla.rb:295:in `<main>'

root@vultr-app:/var/www/discourse# cd script/import_scripts
root@vultr-app:/var/www/discourse/script/import_scripts# sudo nano vanilla.rb
root@vultr-app:/var/www/discourse/script/import_scripts# cd ..
root@vultr-app:/var/www/discourse/script# cd ..
root@vultr-app:/var/www/discourse# RAILS_ENV=production ruby script/import_scripts/vanilla.rb public/uploads/vanilla.txt
Loading existing groups…
Loading existing users…
Loading existing categories…
Loading existing posts…
Loading existing topics…
parsing file…
reading file…

importing topics…
/var/www/discourse/script/import_scripts/base.rb:544:in create_posts': undefined method count’ for nil:NilClass (NoMethodError)

total = opts[:total] || results.count
                               ^^^^^^
    from script/import_scripts/vanilla.rb:184:in `import_topics'
    from script/import_scripts/vanilla.rb:30:in `execute'
    from /var/www/discourse/script/import_scripts/base.rb:47:in `perform'
    from script/import_scripts/vanilla.rb:295:in `<main>'

root@vultr-app:/var/www/discourse# RAILS_ENV=production ruby script/import_scripts/vanilla.rb public/uploads/export.txt
Loading existing groups…
Loading existing users…
Loading existing categories…
Loading existing posts…
Loading existing topics…
parsing file…
reading file…
script/import_scripts/vanilla.rb:88:in gsub': invalid byte sequence in UTF-8 (ArgumentError) from script/import_scripts/vanilla.rb:88:in read_file’
from script/import_scripts/vanilla.rb:47:in parse_file' from script/import_scripts/vanilla.rb:25:in execute’
from /var/www/discourse/script/import_scripts/base.rb:47:in perform' from script/import_scripts/vanilla.rb:295:in
root@vultr-app:/var/www/discourse#

Das ist derselbe Fehler, über den ich in meiner letzten Antwort gesprochen habe.