From d1fbf7b55c37884181dd17a4ab83d87356d36e22 Mon Sep 17 00:00:00 2001 From: Sarah Mei Date: Fri, 3 Feb 2012 21:12:44 -0800 Subject: [PATCH] Fix migration for MySQL --- ...190701_remove_public_share_visibilities.rb | 30 +++++++++++++------ 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/db/migrate/20120202190701_remove_public_share_visibilities.rb b/db/migrate/20120202190701_remove_public_share_visibilities.rb index a884c8825..ca8ea4b37 100644 --- a/db/migrate/20120202190701_remove_public_share_visibilities.rb +++ b/db/migrate/20120202190701_remove_public_share_visibilities.rb @@ -23,15 +23,27 @@ class RemovePublicShareVisibilities < ActiveRecord::Migration end while index < shareable_size + 100 do - sql = <<-SQL - DELETE - FROM share_visibilities AS sv - USING #{table_name} as p - WHERE sv.shareable_id = p.id - AND sv.shareable_type = '#{type}' - AND p.public IS TRUE - AND p.id < #{index}; - SQL + if postgres? + sql = <<-SQL + DELETE + FROM share_visibilities AS sv + USING #{table_name} as p + WHERE sv.shareable_id = p.id + AND sv.shareable_type = '#{type}' + AND p.public IS TRUE + AND p.id < #{index}; + SQL + else + sql = <<-SQL + DELETE sv + FROM share_visibilities AS sv + INNER JOIN #{table_name} + ON sv.shareable_id = #{table_name}.id + WHERE sv.shareable_type = "#{type}" + AND #{table_name}.public IS TRUE + AND #{table_name}.id < #{index}; + SQL + end puts "deleted public share vis up to #{index} of #{type}" ActiveRecord::Base.connection.execute(sql)