Sql 如何在Rails+;博士后

Sql 如何在Rails+;博士后,sql,ruby-on-rails,ruby,postgresql,hstore,Sql,Ruby On Rails,Ruby,Postgresql,Hstore,如何使用Postgres重命名Rails 4中的hstore密钥 User.update_all('hstorename -> oldcolumname: newcolumnname') ??? 基于 重要信息:不要将其与任何用户提供的参数一起使用,以避免SQL注入。对于提供所有数据的迁移等,这应该可以做到 def change_hstore_key(klass, h, from_key, to_key) klass.where("#{h} ? '#{from_key}'")

如何使用Postgres重命名Rails 4中的hstore密钥

User.update_all('hstorename -> oldcolumname: newcolumnname') ???
基于

重要信息:不要将其与任何用户提供的参数一起使用,以避免SQL注入。对于提供所有数据的迁移等,这应该可以做到

  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)