40 lines
1.1 KiB
Ruby
40 lines
1.1 KiB
Ruby
class FixPhotoShareVisibilities < ActiveRecord::Migration
|
|
class Photo < ActiveRecord::Base; end
|
|
|
|
def self.up
|
|
return if ! Photo.first.respond_to?(:tmp_old_id)
|
|
|
|
if postgres?
|
|
['aspect_visibilities', 'share_visibilities'].each do |vis_table|
|
|
execute "UPDATE #{vis_table} SET shareable_type = 'Post'"
|
|
|
|
execute %{
|
|
UPDATE
|
|
#{vis_table}
|
|
SET
|
|
shareable_type = 'Photo'
|
|
, shareable_id = photos.id
|
|
FROM
|
|
photos
|
|
WHERE
|
|
#{vis_table}.shareable_id = photos.tmp_old_id
|
|
}
|
|
end
|
|
else
|
|
['aspect_visibilities', 'share_visibilities'].each do |vis_table|
|
|
ActiveRecord::Base.connection.execute <<SQL
|
|
UPDATE #{vis_table}
|
|
SET shareable_type='Post'
|
|
SQL
|
|
ActiveRecord::Base.connection.execute <<SQL
|
|
UPDATE #{vis_table}, photos
|
|
SET #{vis_table}.shareable_type='Photo', #{vis_table}.shareable_id=photos.id
|
|
WHERE #{vis_table}.shareable_id=photos.tmp_old_id
|
|
SQL
|
|
end
|
|
end
|
|
end
|
|
|
|
def self.down
|
|
end
|
|
end
|