Added MySQL-friendly version of SQL code for migration.

This commit is contained in:
Pistos 2011-12-15 15:59:42 -05:00
parent f83e56e5f3
commit 5110b4c086

View file

@ -4,16 +4,29 @@ class CounterCacheOnPostReshares < ActiveRecord::Migration
def self.up def self.up
add_column :posts, :reshares_count, :integer, :default => 0 add_column :posts, :reshares_count, :integer, :default => 0
execute %{ if postgres?
UPDATE posts execute %{
SET reshares_count = ( UPDATE posts
SELECT COUNT(*) SET reshares_count = (
FROM posts p2 SELECT COUNT(*)
WHERE FROM posts p2
p2.type = 'Reshare' WHERE
AND p2.root_guid = posts.guid p2.type = 'Reshare'
) AND p2.root_guid = posts.guid
} )
}
else # mysql
execute "CREATE TEMPORARY TABLE posts_reshared SELECT * FROM posts WHERE type = 'Reshare'"
execute %{
UPDATE posts p1
SET reshares_count = (
SELECT COUNT(*)
FROM posts_reshared p2
WHERE p2.root_guid = p1.guid
)
}
end
end end
def self.down def self.down