我正在尝试将hstore数据列添加到现有的STI模型中.
类似于Postgres HStore Errors – Unknown Operator但据我所知,我已经安装了hstore扩展.我已经删除了数据库并从迁移重建它而没有错误,但规格仍然失败.
Mac OS X 10.8.2 Rails 3.1.10 psql (Postgresql) 9.1.4
user.rb
has_many :targets def complete_targets targets.where("data @> (:key => :value)",key: 'complete',value: 'true') end
targets.rb
belongs_to :user serialize :data,ActiveRecord::Coders::Hstore
setup_hstore迁移:
class SetupHstore < ActiveRecord::Migration def self.up execute "CREATE EXTENSION IF NOT EXISTS hstore" end def self.down execute "DROP EXTENSION IF EXISTS hstore" end end
添加数据列迁移:
class AddDataToRecords < ActiveRecord::Migration def change add_column :records,:data,:hstore end end
添加索引迁移:
class AddHstoreIndexes < ActiveRecord::Migration def up execute "CREATE INDEX records_gin_data ON records USING GIN(data)" end def down execute "DROP INDEX records_gin_data" end end
错误:
ActiveRecord::StatementInvalid: PG::Error: ERROR: operator does not exist: unkNown => unkNown LINE 1: ...records"."user_id" = 244 AND (data @> ('complete' => 'true')...
CREATE EXTENSION hstore Error : ERROR: extension "hstore" already exists
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。