mirror of
https://github.com/discourse/discourse.git
synced 2025-05-22 19:52:43 +08:00
FIX: Dry run broken for uploads:migrate_to_s3
.
This commit is contained in:
@ -357,32 +357,40 @@ def migrate_to_s3
|
|||||||
DbHelper.remap(from, to, anchor_left: true)
|
DbHelper.remap(from, to, anchor_left: true)
|
||||||
end
|
end
|
||||||
|
|
||||||
from = "src=\"/uploads/#{db}/original/(\\dX/(?:[a-f0-9]/)*[a-f0-9]{40}[a-z0-9\\.]*)"
|
[
|
||||||
to = "src=\"#{SiteSetting.Upload.s3_base_url}/#{prefix}\\1"
|
[
|
||||||
|
"src=\"/uploads/#{db}/original/(\\dX/(?:[a-f0-9]/)*[a-f0-9]{40}[a-z0-9\\.]*)",
|
||||||
|
"src=\"#{SiteSetting.Upload.s3_base_url}/#{prefix}\\1"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"src='/uploads/#{db}/original/(\\dX/(?:[a-f0-9]/)*[a-f0-9]{40}[a-z0-9\\.]*)",
|
||||||
|
"src='#{SiteSetting.Upload.s3_base_url}/#{prefix}\\1"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\\[img\\]/uploads/#{db}/original/(\\dX/(?:[a-f0-9]/)*[a-f0-9]{40}[a-z0-9\\.]*)\\[/img\\]",
|
||||||
|
"[img]#{SiteSetting.Upload.s3_base_url}/#{prefix}\\1[/img]"
|
||||||
|
]
|
||||||
|
].each do |from, to|
|
||||||
|
|
||||||
DbHelper.regexp_replace(from, to)
|
if true
|
||||||
|
puts "REPLACING '#{from}' WITH '#{to}'"
|
||||||
from = "src='/uploads/#{db}/original/(\\dX/(?:[a-f0-9]/)*[a-f0-9]{40}[a-z0-9\\.]*)"
|
else
|
||||||
to = "src='#{SiteSetting.Upload.s3_base_url}/#{prefix}\\1"
|
DbHelper.regexp_replace(from, to)
|
||||||
|
|
||||||
DbHelper.regexp_replace(from, to)
|
|
||||||
|
|
||||||
# BBCode images
|
|
||||||
from = "\\[img\\]/uploads/#{db}/original/(\\dX/(?:[a-f0-9]/)*[a-f0-9]{40}[a-z0-9\\.]*)\\[/img\\]"
|
|
||||||
to = "[img]#{SiteSetting.Upload.s3_base_url}/#{prefix}\\1[/img]"
|
|
||||||
|
|
||||||
DbHelper.regexp_replace(from, to)
|
|
||||||
|
|
||||||
# Legacy inline image format
|
|
||||||
Post.where("raw LIKE '%%'").each do |post|
|
|
||||||
regexp = /!\[\](\/uploads\/#{db}\/original\/(\dX\/(?:[a-f0-9]\/)*[a-f0-9]{40}[a-z0-9\.]*))/
|
|
||||||
|
|
||||||
post.raw.scan(regexp).each do |upload_url, _|
|
|
||||||
upload = Upload.get_from_url(upload_url)
|
|
||||||
post.raw = post.raw.gsub("", "")
|
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
post.save!(validate: false)
|
unless dry_run
|
||||||
|
# Legacy inline image format
|
||||||
|
Post.where("raw LIKE '%%'").each do |post|
|
||||||
|
regexp = /!\[\](\/uploads\/#{db}\/original\/(\dX\/(?:[a-f0-9]\/)*[a-f0-9]{40}[a-z0-9\.]*))/
|
||||||
|
|
||||||
|
post.raw.scan(regexp).each do |upload_url, _|
|
||||||
|
upload = Upload.get_from_url(upload_url)
|
||||||
|
post.raw = post.raw.gsub("", "")
|
||||||
|
end
|
||||||
|
|
||||||
|
post.save!(validate: false)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if Discourse.asset_host.present?
|
if Discourse.asset_host.present?
|
||||||
@ -407,16 +415,18 @@ def migrate_to_s3
|
|||||||
DbHelper.remap(from, to)
|
DbHelper.remap(from, to)
|
||||||
end
|
end
|
||||||
|
|
||||||
puts "Removing old optimized images..."
|
unless dry_run
|
||||||
|
puts "Removing old optimized images..."
|
||||||
|
|
||||||
OptimizedImage
|
OptimizedImage
|
||||||
.joins("LEFT JOIN uploads u ON optimized_images.upload_id = u.id")
|
.joins("LEFT JOIN uploads u ON optimized_images.upload_id = u.id")
|
||||||
.where("u.id IS NOT NULL AND u.url LIKE '//%' AND optimized_images.url NOT LIKE '//%'")
|
.where("u.id IS NOT NULL AND u.url LIKE '//%' AND optimized_images.url NOT LIKE '//%'")
|
||||||
.destroy_all
|
.destroy_all
|
||||||
|
|
||||||
puts "Rebaking posts with lightboxes..."
|
puts "Rebaking posts with lightboxes..."
|
||||||
|
|
||||||
Post.where("cooked LIKE '%class=\"lightbox\"%'").find_each(&:rebake!)
|
Post.where("cooked LIKE '%class=\"lightbox\"%'").find_each(&:rebake!)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
puts "Done!"
|
puts "Done!"
|
||||||
|
Reference in New Issue
Block a user