Last active
December 26, 2015 23:01
-
-
Save jderrien/279556fe2edabd9a1df1 to your computer and use it in GitHub Desktop.
sequel-sqlite-error
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ 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