Skip to content

Instantly share code, notes, and snippets.

@dkam
Created March 26, 2014 05:41
Show Gist options
  • Save dkam/9777451 to your computer and use it in GitHub Desktop.
Save dkam/9777451 to your computer and use it in GitHub Desktop.
Sequel.extension(:pg_hstore, :pg_hstore_ops, :pg_array)
DB = Sequel.connect('postgres://user:pass@localhost/db')
class Messages < Sequel::Model
end
Messages.first
#=> #<Messages @values={:id=>1, :observable_name=>"testo", :observable_content=>{"key1"=>"value1", "key2"=>"value2", "key3"=>"value3"}, :created_at=>2014-03-25 15:37:30 +1100}>
data = Messages.first.observable_content.to_h
Messages.create( observable_name: 'testo', observable_content: data )
Sequel::DatabaseError: PG::DatatypeMismatch: ERROR: column "observable_content" is of type hstore but expression is of type boolean
LINE 1: ...e_name", "observable_content") VALUES ('testo', (('key1' = '...
^
HINT: You will need to rewrite or cast the expression.
from /Users/dkam/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/sequel-4.8.0/lib/sequel/adapters/postgres.rb:161:in `async_exec'
from /Users/dkam/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/sequel-4.8.0/lib/sequel/adapters/postgres.rb:161:in `block in execute_query'
from /Users/dkam/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/sequel-4.8.0/lib/sequel/database/logging.rb:33:in `log_yield'
from /Users/dkam/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/sequel-4.8.0/lib/sequel/adapters/postgres.rb:161:in `execute_query'
from /Users/dkam/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/sequel-4.8.0/lib/sequel/adapters/postgres.rb:148:in `block in execute'
from /Users/dkam/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/sequel-4.8.0/lib/sequel/adapters/postgres.rb:124:in `check_disconnect_errors'
from /Users/dkam/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/sequel-4.8.0/lib/sequel/adapters/postgres.rb:148:in `execute'
from /Users/dkam/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/sequel-4.8.0/lib/sequel/adapters/postgres.rb:483:in `_execute'
from /Users/dkam/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/sequel-4.8.0/lib/sequel/adapters/postgres.rb:307:in `block (2 levels) in execute'
from /Users/dkam/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/sequel-4.8.0/lib/sequel/adapters/postgres.rb:504:in `check_database_errors'
from /Users/dkam/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/sequel-4.8.0/lib/sequel/adapters/postgres.rb:307:in `block in execute'
from /Users/dkam/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/sequel-4.8.0/lib/sequel/database/connecting.rb:229:in `block in synchronize'
from /Users/dkam/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/sequel-4.8.0/lib/sequel/connection_pool/threaded.rb:91:in `hold'
from /Users/dkam/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/sequel-4.8.0/lib/sequel/database/connecting.rb:229:in `synchronize'
from /Users/dkam/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/sequel-4.8.0/lib/sequel/adapters/postgres.rb:307:in `execute'
from /Users/dkam/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/sequel-4.8.0/lib/sequel/dataset/actions.rb:795:in `execute'
... 11 levels...
from /Users/dkam/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/sequel-4.8.0/lib/sequel/model/base.rb:1613:in `_save'
from /Users/dkam/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/sequel-4.8.0/lib/sequel/model/base.rb:1313:in `block (2 levels) in save'
from /Users/dkam/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/sequel-4.8.0/lib/sequel/model/base.rb:1771:in `block in checked_transaction'
from /Users/dkam/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/sequel-4.8.0/lib/sequel/database/transactions.rb:118:in `_transaction'
from /Users/dkam/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/sequel-4.8.0/lib/sequel/database/transactions.rb:93:in `block in transaction'
from /Users/dkam/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/sequel-4.8.0/lib/sequel/database/connecting.rb:229:in `block in synchronize'
from /Users/dkam/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/sequel-4.8.0/lib/sequel/connection_pool/threaded.rb:104:in `hold'
from /Users/dkam/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/sequel-4.8.0/lib/sequel/database/connecting.rb:229:in `synchronize'
from /Users/dkam/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/sequel-4.8.0/lib/sequel/database/transactions.rb:86:in `transaction'
from /Users/dkam/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/sequel-4.8.0/lib/sequel/model/base.rb:1771:in `checked_transaction'
from /Users/dkam/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/sequel-4.8.0/lib/sequel/model/base.rb:1313:in `block in save'
from /Users/dkam/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/sequel-4.8.0/lib/sequel/model/base.rb:1759:in `checked_save_failure'
from /Users/dkam/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/sequel-4.8.0/lib/sequel/model/base.rb:1313:in `save'
from /Users/dkam/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/sequel-4.8.0/lib/sequel/model/base.rb:148:in `create'
from (irb):10
Messages.create( observable_name: 'testo', observable_content: Sequel.hstore(data) )
=> #<Messages @values={:id=>18, :observable_name=>"testo", :observable_content=>{"key1"=>"value1", "key2"=>"value2", "key3"=>"value3"}, :created_at=>2014-03-26 16:40:58 +1100}>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment