Importar usuarios vía CSV

Sé que hay una forma de invitar usuarios a través de CSV en el ‘frontend’, sin embargo, eso no funcionará en mi caso, ya que enviará un correo electrónico a las miles de personas que se agregarán al sitio.

Al intentar agregarlo a través de la CLI, obtengo los siguientes errores.

/var/www/discourse# rails runner script/import_scripts/csv_importer.rb /var/www/discourse/tmp/users.csv
Cargando grupos existentes…
Cargando usuarios existentes…
Cargando categorías existentes…
Cargando publicaciones existentes…
Cargando temas existentes…
El archivo no existe: /var/www/discourse/tmp/emails.csv
El archivo no existe: /var/www/discourse/tmp/custom_fields.csv
bundler: no se pudo cargar el comando: script/rails (script/rails)
/var/www/discourse/script/import_scripts/csv_importer.rb:29:in initialize': método headers’ no definido para nil (NoMethodError)

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

¿Alguna idea de lo que podría estar pasando?

Este script es un script de migración, no está destinado a realizar la tarea singular de añadir usuarios.

¿Simplemente quieres crear un mayor número de cuentas de usuario reales, o son para pruebas?

¡Ajá! ¡Vi importador, no migración! Gracias por el consejo.

Quiero importar una gran cantidad de usuarios a través de CSV

Importar y migrar son en su mayoría sinónimos.

Debería realizar la tarea de crear todos esos usuarios (no tendrán contraseñas, por lo que necesitarán obtener una, probablemente enviándoles un correo electrónico).
Es probable que necesites entender un poco de programación para que funcione.

Primero que nada, feliz cumpleaños.

Tengo casi nulas habilidades de programación. Asumí que sería tan simple como iniciar el archivo import.rb “apuntando” al archivo users.csv.

Los errores que muestra no tienen absolutamente ningún sentido para mí. Miré la línea 29 del script de importación y hacía referencia a encabezados, así que asumí que se refería a las columnas del archivo csv, por lo que pasé algo de tiempo modificándolo, sin éxito.

Bueno, no has avanzado mucho ya que ni siquiera abrió tu csv.

Es una de esas cosas frustrantes en las que podría tomar 30 segundos u horas.

Pero podrías intentar copiar el archivo allí. Es complicado porque es un lugar en el sistema de archivos de la computadora y otro dentro del contenedor. Una vez que resuelvas eso, puedes empezar a jugar con los encabezados de las columnas.

A veces hay una solución fácil para el problema original[1].

Deshabilita los correos electrónicos, importa los usuarios y luego vuelve a habilitar los correos electrónicos.


  1. ver problema x-y ↩︎

1 me gusta

Ajá, pero el problema aquí es que creo que el importador detectó el users.csv.

No tengo ni quiero importar emails.csv, etc.

¿O es este un importador multipartes? Donde los usuarios (nombres) están en un csv, y los correos están en otro csv (emails.csv)

Parece que está encontrando el archivo users.csv ya que no está arrojando un error sobre ese.