Я давно хотел решить проблему миграции загрузок, и теперь, с помощью ИИ-чат-бота, мне это удалось. Делюсь своими заметками для тех, кто следит за этим! В посте выше от Джей был тот самый секретный ингредиент, который помог мне начать, так что спасибо за это.
Моя первая попытка сработала ровно так, как предсказал Джей. Если вы создадите список URL-адресов изображений на том сайте, откуда вы переносите контент, и вставите его в пост на новом сайте, они будут скачаны. Для этого должна быть включена опция Download remote images to local.
Мой ИИ-чат-бот написал для этого скрипт, которым я делюсь здесь для будущих путешественников.
Кратко
Выполните это в консоли 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)"
Переносите целую категорию? Замените первые две строки на:
topic_ids = Topic.where(category_id: =TOPIC_ID=).pluck(:id) posts = Post.where(topic_id: topic_ids)В этом случае =TOPIC_ID= — это ID вашей категории, которое можно найти в конце её URL в разделе Admin → Categories.
Однако для меня этого оказалось недостаточно, так как у меня также есть PDF-файлы, которые не скачиваются локально автоматически.
Поэтому я попросил своего чат-бота написать мне Python-скрипт для миграции загрузок. Он работает довольно хорошо, поэтому я с удовольствием поделюсь и им. Если вы хотите попробовать или дать обратную связь, вот репозиторий.
Также мой чат-бот написал для меня более полный регламент (runbook) по переносу тем или категорий, который доступен на моём дискурсе.