Volevo risolvere il problema della migrazione dei caricamenti da un po’ di tempo, e ora, con l’aiuto di un chatbot AI, ci sono riuscito. Condivido i miei appunti per chi segue! Il post di Jay qui sopra conteneva l’ingrediente segreto necessario per iniziare, quindi grazie per quello.
Il mio primo tentativo ha funzionato esattamente come Jay aveva previsto. Se crei un elenco di URL delle immagini sul sito da cui stai migrando e lo incolli in un post sul tuo nuovo sito, verranno scaricate. Per funzionare, l’opzione Download remote images to local deve essere abilitata.
Il mio chatbot AI ha creato uno script per questo scopo, che condividerò qui per i futuri viaggiatori.
Riepilogo
Esegui questo nella console 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)"
Vuoi spostare un’intera categoria invece? Sostituisci le prime due righe con:
topic_ids = Topic.where(category_id: =TOPIC_ID=).pluck(:id) posts = Post.where(topic_id: topic_ids)In questo caso =TOPIC_ID= è l’ID della categoria, che si trova alla fine del suo URL in Admin → Categories.
Tuttavia, per me questo non è stato sufficiente perché ho anche dei PDF che non vengono scaricati localmente automaticamente.
Quindi ho chiesto al mio chatbot di scrivere uno script in Python per migrare i caricamenti. Funziona piuttosto bene, quindi sono felice di condividerlo anche questo. Se vuoi provarlo o hai feedback, ecco il repository.
Ho anche chiesto al mio chatbot di scrivere un runbook più completo su come spostare argomenti o categorie, che è disponibile sul mio discourse.