Estamos ejecutando múltiples foros de Discourse como instancias aisladas en la misma máquina virtual. Cada foro tiene su propia base de datos Postgres separada, pero todos son administrados por un script compartido que se ejecuta en la máquina host.
Estamos buscando automatizar la creación de usuarios iniciales durante la configuración. En lugar de usar la API o el importador CSV, nos preguntamos:
¿Es posible (y seguro) insertar registros de usuarios directamente en la base de datos de cada instancia?
Dado que nuestro script ya interactúa con las bases de datos, esto podría optimizar significativamente el proceso de aprovisionamiento.
¿Alguien ha intentado la creación directa de usuarios en la base de datos antes? ¿O es una mala idea debido a los riesgos con la integridad de los datos, las sesiones u otros mecanismos específicos de Discourse?
¡Agradezco cualquier consejo o experiencia que puedan compartir!
Es un poco más seguro que Rails lo haga a que modifiques la base de datos tú mismo, pero puedes hacerlo si quieres. Ten en cuenta que debes tocar al menos las tablas user y user_emails, y asegurarte de que los user_ids coincidan.
Gracias, @pfaffman. ¡Agradezco mucho tu orientación!
Solo para aclarar: una de las principales razones por las que estamos explorando esta ruta es que tanto los métodos basados en CSV como en API son demasiado lentos para lo que intentamos hacer. Estamos creando muchas instancias aisladas y necesitamos poblar cada una con un lote de usuarios rápidamente durante el aprovisionamiento.
¿El enfoque de fixtures/plugin que mencionaste permitiría una creación de usuarios significativamente más rápida en comparación con los métodos de API o CSV? Específicamente, esperamos reducir el tiempo de espera durante la configuración, idealmente algo que se ejecute al instante o casi al instante junto con la configuración inicial de la base de datos.
Puede consultar los scripts de importación masiva para ver ejemplos de cómo actualizar la base de datos directamente. El script de importación tiene cierta sobrecarga, ¿así que tal vez el ejemplo en los fixtures sea un poco más rápido?
¿Cuántos usuarios está agregando? ¿Tiene los mismos usuarios para cada sitio?