PostgreSQL compatibility for FixPhotoShareVisibilities migration.

This commit is contained in:
Pistos 2011-10-23 21:03:54 -04:00
parent ea3c7ec439
commit 2c89a71958

View file

@ -2,9 +2,25 @@ class FixPhotoShareVisibilities < ActiveRecord::Migration
class Photo < ActiveRecord::Base; end
def self.up
raise 'migration currently only compatable with mysql' if postgres?
return if ! Photo.first.respond_to?(:tmp_old_id)
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}