2016-05-06 7 views

ответ

3

основе https://stackoverflow.com/a/13276545/305019

def change_hstore_key(klass, h, from_key, to_key) 
    klass.where("#{h} ? '#{from_key}'") 
     .update_all("#{h} = (#{h} - '#{from_key}'::text) || " \ 
        "hstore('#{to_key}'::text, #{h} -> '#{from_key}')") 
    end 

    # usage 
    change_hstore_key(User, hstorename, oldcolumnname, newcolumnname) 

ВАЖНО: Не используйте это с любым поставляемыми пользователем Params, чтобы избежать инъекции SQL. Для миграции и т. Д., Где вы предоставляете все данные, это должно сделать трюк.

Смежные вопросы