Skip to content

Instantly share code, notes, and snippets.

@jderrien
Last active December 26, 2015 23:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jderrien/279556fe2edabd9a1df1 to your computer and use it in GitHub Desktop.
Save jderrien/279556fe2edabd9a1df1 to your computer and use it in GitHub Desktop.
sequel-sqlite-error
require 'sequel'
DB = Sequel.sqlite
DB.create_table(:topics) do
String :url
end
DB.create_table(:messages) do
String :text, :unique => true
end
class Topic < Sequel::Model
def parse
puts "==> Parse topic '#{self.url}'"
[ "message-1", "message-2", "message-3" ].each do |message|
begin
puts " Import message: #{message}"
Message.create(:text => message)
rescue Sequel::UniqueConstraintViolation
end
end
end
end
class Message < Sequel::Model
end
[ "http://foo.bar/topic1", "http://foo.bar/topic2" ].each do |t|
puts "==> Save new topic '#{t}'"
Topic.create(:url => t)
end
Topic.each do |topic|
topic.parse
end
$ ruby error_sqlite.rb
==> Save new topic 'http://foo.bar/topic1'
==> Save new topic 'http://foo.bar/topic2'
==> Parse topic 'http://foo.bar/topic1'
Import message: message-1
Import message: message-2
Import message: message-3
==> Parse topic 'http://foo.bar/topic2'
Import message: message-1
Import message: message-2
Import message: message-3
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/gems/2.0.0/gems/sqlite3-1.3.7/lib/sqlite3/resultset.rb:108:in `step': SQLite3::AbortException: abort due to ROLLBACK (Sequel::DatabaseError)
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/gems/2.0.0/gems/sqlite3-1.3.7/lib/sqlite3/resultset.rb:108:in `next'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/gems/2.0.0/gems/sqlite3-1.3.7/lib/sqlite3/resultset.rb:137:in `each'
from /Library/Ruby/Gems/2.0.0/gems/sequel-4.29.0/lib/sequel/adapters/sqlite.rb:325:in `block in fetch_rows'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/gems/2.0.0/gems/sqlite3-1.3.7/lib/sqlite3/database.rb:266:in `query'
from /Library/Ruby/Gems/2.0.0/gems/sequel-4.29.0/lib/sequel/adapters/sqlite.rb:185:in `block (2 levels) in _execute'
from /Library/Ruby/Gems/2.0.0/gems/sequel-4.29.0/lib/sequel/database/logging.rb:33:in `log_yield'
from /Library/Ruby/Gems/2.0.0/gems/sequel-4.29.0/lib/sequel/adapters/sqlite.rb:185:in `block in _execute'
from /Library/Ruby/Gems/2.0.0/gems/sequel-4.29.0/lib/sequel/database/connecting.rb:249:in `block in synchronize'
from /Library/Ruby/Gems/2.0.0/gems/sequel-4.29.0/lib/sequel/connection_pool/threaded.rb:103:in `hold'
from /Library/Ruby/Gems/2.0.0/gems/sequel-4.29.0/lib/sequel/database/connecting.rb:249:in `synchronize'
from /Library/Ruby/Gems/2.0.0/gems/sequel-4.29.0/lib/sequel/adapters/sqlite.rb:178:in `_execute'
from /Library/Ruby/Gems/2.0.0/gems/sequel-4.29.0/lib/sequel/adapters/sqlite.rb:128:in `execute'
from /Library/Ruby/Gems/2.0.0/gems/sequel-4.29.0/lib/sequel/dataset/actions.rb:950:in `execute'
from /Library/Ruby/Gems/2.0.0/gems/sequel-4.29.0/lib/sequel/adapters/sqlite.rb:319:in `fetch_rows'
from /Library/Ruby/Gems/2.0.0/gems/sequel-4.29.0/lib/sequel/dataset/actions.rb:137:in `each'
from /Library/Ruby/Gems/2.0.0/gems/sequel-4.29.0/lib/sequel/model/plugins.rb:28:in `each'
from error_sqlite.rb:35:in `<main>'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment