He estado queriendo resolver el problema de la migración de subidas durante mucho tiempo, y ahora, con la ayuda de un chatbot de IA, lo he logrado. ¡Comparto mis notas para quienes sigan el hilo! La publicación anterior de Jay contenía el ingrediente secreto necesario para que pudiera empezar, así que gracias por eso.
Mi primer intento funcionó exactamente como Jay predijo. Si creas una lista de URLs de las imágenes en el sitio desde el que estás moviendo los datos y la pegas en una publicación en tu nuevo sitio, estas se descargarán. Para que esto funcione, Download remote images to local debe estar habilitado.
Mi chatbot de IA creó un script para eso, que compartiré aquí para futuros viajeros.
Resumen
Ejecuta esto en la consola de rails:
topic = Topic.find(=TOPIC_ID=)
posts = Post.where(topic_id: topic.id)
urls = []
posts.each do |p|
UploadReference.where(target: p).each do |ref|
urls << "=SOURCE_URL=#{ref.upload.url}"
end
end
puts urls.uniq.join("\n")
puts "\nTotal: #{urls.uniq.count} upload(s)"
¿Quieres mover una categoría completa? Reemplaza las dos primeras líneas con:
topic_ids = Topic.where(category_id: =TOPIC_ID=).pluck(:id) posts = Post.where(topic_id: topic_ids)En este caso, =TOPIC_ID= es el ID de tu categoría, que se encuentra al final de su URL en Administración → Categorías.
Sin embargo, para mí eso no fue suficiente porque también tengo PDF que no se descargan localmente de forma automática.
Así que le pedí a mi chatbot que me escribiera un script en Python para migrar las subidas. Funciona bastante bien, así que también estoy encantado de compartirlo. Si te gustaría probarlo o tienes comentarios, aquí está el repositorio.
También le pedí a mi chatbot que me escribiera una guía de ejecución más completa para mover temas o categorías, la cual está disponible en mi discourse.