Importar Usuários via CSV

Eu sei que existe uma maneira ‘frontend’ de convidar usuários via CSV, no entanto, isso não funcionará no meu caso, pois enviará um e-mail para as milhares de pessoas que serão adicionadas ao site.

Ao tentar adicionar via CLI, recebo os seguintes erros.

/var/www/discourse# rails runner script/import_scripts/csv_importer.rb /var/www/discourse/tmp/users.csv
Carregando grupos existentes…
Carregando usuários existentes…
Carregando categorias existentes…
Carregando posts existentes…
Carregando tópicos existentes…
Arquivo não encontrado: /var/www/discourse/tmp/emails.csv
Arquivo não encontrado: /var/www/discourse/tmp/custom_fields.csv
bundler: falha ao carregar o comando: script/rails (script/rails)
/var/www/discourse/script/import_scripts/csv_importer.rb:29:in initialize': undefined method headers’ for nil (NoMethodError)

@imported_custom_fields_names = @imported_custom_fields.headers.drop(1)
                                                       ^^^^^^^

Alguma ideia do que pode estar acontecendo?

Este script é um script de migração, ele não se destina a realizar a tarefa singular de adicionar usuários.

Você só quer criar um número maior de contas de usuário reais, ou elas são para testes?

Aha! Eu vi importador, não migração! Obrigado pela dica.

Quero importar uma grande quantidade de usuários via CSV

Importar e migrar aqui são em grande parte sinônimos.

Isso deve cumprir a função de criar todos esses usuários (eles não terão senhas, então precisarão obter uma, provavelmente recebendo um e-mail).
Você provavelmente precisará entender um pouco de programação para fazê-lo funcionar.

Primeiramente - feliz aniversário.

Eu não tenho quase nenhuma habilidade de programação. Eu presumi que seria tão simples quanto iniciar o arquivo import.rb ‘apontado’ para o users.csv.

Os erros que ele exibe não fazem absolutamente nenhum sentido para mim. Eu olhei para a linha 29 do script de importação e ela fazia referência a headers (cabeçalhos), então presumi que se referia às colunas do arquivo csv, então passei algum tempo mexendo nisso, sem sucesso.

Bem, você não avançou muito, pois ele nem sequer abriu seu csv.

É uma daquelas coisas frustrantes em que pode levar 30 segundos ou horas.

Mas você pode tentar copiar o arquivo para lá. É complicado porque é um lugar no sistema de arquivos do computador e outro dentro do contêiner. Depois de resolver isso, você pode começar a mexer nos cabeçalhos das colunas.

Às vezes, há uma solução fácil para o problema original[1].

Desative os e-mails, importe os usuários e depois reative os e-mails.


  1. veja o problema x-y ↩︎

1 curtida

Aha - mas o problema aqui é que eu acho que o importador pegou o users.csv.

Eu não tenho nem quero importar emails.csv, etc.

Ou este é um importador multipartidário? Onde os usuários (nomes) estão em um csv, e os e-mails estão em outro csv (emails.csv)

Parece que ele está encontrando o arquivo users.csv, pois não está dando erro sobre ele.