1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
# frozen-string-literal: true
Sequel::DataObjects.load_driver 'do_sqlite3'
Sequel.require 'adapters/shared/sqlite'
module Sequel
module DataObjects
Sequel.synchronize do
DATABASE_SETUP[:sqlite3] = proc do |db|
db.extend(Sequel::DataObjects::SQLite::DatabaseMethods)
db.extend_datasets Sequel::SQLite::DatasetMethods
db.set_integer_booleans
end
end
# Database and Dataset support for SQLite databases accessed via DataObjects.
module SQLite
# Instance methods for SQLite Database objects accessed via DataObjects.
module DatabaseMethods
extend Sequel::Database::ResetIdentifierMangling
include Sequel::SQLite::DatabaseMethods
private
# Default to a single connection for a memory database.
def connection_pool_default_options
o = super
uri == 'sqlite3::memory:' ? o.merge(:max_connections=>1) : o
end
# Execute the connection pragmas on the connection
def setup_connection(conn)
connection_pragmas.each do |s|
com = conn.create_command(s)
log_connection_yield(s, conn){com.execute_non_query}
end
super
end
end
end
end
end
|