, postgresql JSON HSTORE . , JSON , :
def self.up
execute <<-SQL
CREATE OR REPLACE FUNCTION my_json_to_hstore(json)
RETURNS hstore
IMMUTABLE
STRICT
LANGUAGE sql
AS $func$
SELECT hstore(array_agg(key), array_agg(value))
FROM json_each_text($1)
$func$;
SQL
change_column :user_actions, :payload, 'hstore USING my_json_to_hstore(payload)'
end
def self.down
change_column :user_actions, :payload, 'json USING CAST(payload AS json)'
execute "DROP FUNCTION my_json_to_hstore(json)"
end
pozs postgresql : JSON HSTORE Postgres 9.3+?