将 Vanilla 论坛迁移到 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’: We could not find your database: discourse. Which can be found in the database configuration file located at config/database.yml.

我通过了 Gemfile,但现在出现了这个错误。有什么建议吗?

Got based that error.. by adding a password and having to set up the database.yml file.. and now onto the next error 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

这表明您的数据库(或其一部分)不是 UTF-8 编码。

您可以搜索有关如何将数据库设置为 UTF-8 的信息。也许它使用了其他编码,您可以将其转换过来,或者其部分内容包含错误字符。

编辑:它正在读取“vanilla csv”文件(无论那是什么),并且它不是 UTF-8 编码,这比数据库更容易修复。我仍然不太清楚该告诉您什么,但其中有一些奇怪的字符未被识别为 UTF-8,您需要弄清楚如何修复它。

我现在收到这个……

导入类别……
script/import_scripts/vanilla.rb:140:in import_categories': 调用了私有方法 select’ on 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
正在加载现有组……
正在加载现有用户……
正在加载现有类别……
正在加载现有帖子……
正在加载现有主题……
正在解析文件……
正在读取文件……

正在导入主题……
/var/www/discourse/script/import_scripts/base.rb:544:in create_posts': 未定义的方法 count’ on 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
正在加载现有组……
正在加载现有用户……
正在加载现有类别……
正在加载现有帖子……
正在加载现有主题……
正在解析文件……
正在读取文件……
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#

那是我上次回复时提到的同一个错误。