Migre um fórum Vanilla para 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’: Não foi possível encontrar seu banco de dados: discourse. Ele pode ser encontrado no arquivo de configuração do banco de dados localizado em config/database.yml.

Passei pelo Gemfile. mas agora estou recebendo este erro. alguma sugestão

Recebi esse erro.. adicionando uma senha e tendo que configurar o arquivo database.yml.. e agora para o próximo erro Carregando grupos existentes…
Carregando usuários existentes…
Carregando categorias existentes…
Carregando posts existentes…
Carregando tópicos existentes…
analisando arquivo…
lendo arquivo…
script/import_scripts/vanilla.rb:88:in gsub': sequência de bytes inválida em 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

Sugere que seu banco de dados (ou parte dele) não está em UTF-8.

Você pode pesquisar sobre como colocar seu banco de dados em UTF-8. Talvez ele esteja em alguma outra codificação e você possa transferi-lo, ou talvez partes dele tenham caracteres inválidos.

EDIT: ele está lendo o arquivo “csv vanilla” (seja lá o que isso signifique), e ele não está codificado em UTF-8, o que é muito mais fácil de consertar do que o banco de dados. Eu ainda não sei bem o que te dizer, mas há alguns caracteres estranhos nele que não são reconhecidos como UTF-8, e você precisará descobrir como consertar isso.

agora estou recebendo isso…

importando categorias…
script/import_scripts/vanilla.rb:140:in import_categories': método privado select’ chamado para 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
Carregando grupos existentes…
Carregando usuários existentes…
Carregando categorias existentes…
Carregando posts existentes…
Carregando tópicos existentes…
analisando arquivo…
lendo arquivo…

importando tópicos…
/var/www/discourse/script/import_scripts/base.rb:544:in create_posts': método indefinido count’ para 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
Carregando grupos existentes…
Carregando usuários existentes…
Carregando categorias existentes…
Carregando posts existentes…
Carregando tópicos existentes…
analisando arquivo…
lendo arquivo…
script/import_scripts/vanilla.rb:88:in gsub': sequência de bytes inválida em 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#

Esse é o mesmo erro que falei na minha última resposta.