Durante la importación a discourse, una publicación importante perdió 100 “me gusta” en la transición (no pude rasparla correctamente). Prefiero no volver a ejecutar el script de importación en este caso.
Si tengo la lista de usuarios a los que les gustó la publicación, ¿cuál es la mejor manera de agregarlos? ¿Hay algún comando rake?
Lo que haría sería mirar el script de importación que importa los “likes” para ver qué hace para añadir los “likes” y luego hacerlo en la consola de Rails. Estoy bastante seguro de que es una PostAction.
Estoy bastante seguro de que no existe tal comando rake, ya que es una solicitud bastante inusual (principalmente, volvería a ejecutar el script de importación), pero no lo he mirado.
Gracias por la respuesta. Estoy nervioso por volver a ejecutar el script de importación, ya que ha pasado casi 6 meses y no estoy seguro de qué tipo de efectos secundarios podría tener en casos extremos donde los datos antiguos interactúan con los datos nuevos.
Aquí está la función auxiliar que utilicé en mi script de importación.
Aquí está el código relevante
created_by = User.find_by(id: user_id_from_imported_user_id(params[:user_id]))
post = Post.find_by(id: post_id_from_imported_post_id(params[:post_id]))
if created_by && post
PostActionCreator.create(created_by, post, :like, created_at: params[:created_at])
created += 1
...
¡Yupi! Nunca se sabe si una respuesta tan vaga como “Bueno, lo que yo haría…” será de alguna utilidad.
Si vas a pegar cosas en la consola de Rails, un truco útil que debes saber es que si terminas tus líneas con un ; no te enviará a un paginador less para ver los resultados de la última instrucción. (Si escribes un bucle adecuado o ejecutas un script, no necesitarás este consejo).