Module: ActiveRecord::ConnectionAdapters::TursoAdapter::ConnectionManagement
- Included in:
- ActiveRecord::ConnectionAdapters::TursoAdapter
- Defined in:
- lib/active_record/connection_adapters/turso_adapter/connection_management.rb
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
- #active? ⇒ Boolean
- #configure_connection ⇒ Object
- #disconnect! ⇒ Object
- #jdbc? ⇒ Boolean
- #raw_connection ⇒ Object
- #reconnect! ⇒ Object
Class Method Details
.included(base) ⇒ Object
7 8 9 |
# File 'lib/active_record/connection_adapters/turso_adapter/connection_management.rb', line 7 def self.included(base) base.extend(ClassMethods) end |
Instance Method Details
#active? ⇒ Boolean
19 20 21 22 23 24 |
# File 'lib/active_record/connection_adapters/turso_adapter/connection_management.rb', line 19 def active? return false unless @raw_connection !@raw_connection.closed? rescue ::Turso::Error false end |
#configure_connection ⇒ Object
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/active_record/connection_adapters/turso_adapter/connection_management.rb', line 49 def configure_connection @mvcc_enabled = false if @config[:journal_mode] mode = @config[:journal_mode].to_s execute("PRAGMA journal_mode = #{mode}") if @config[:journal_mode].to_s.downcase == "mvcc" @mvcc_enabled = true end end execute("PRAGMA foreign_keys = ON") timeout = @config[:busy_timeout] || @config[:timeout] || 5000 @raw_connection.busy_timeout = timeout query_timeout = @config[:query_timeout] || 30_000 @raw_connection.query_timeout = query_timeout end |
#disconnect! ⇒ Object
34 35 36 37 38 39 |
# File 'lib/active_record/connection_adapters/turso_adapter/connection_management.rb', line 34 def disconnect! @lock.synchronize do @raw_connection&.close @raw_connection = nil end end |
#jdbc? ⇒ Boolean
45 46 47 |
# File 'lib/active_record/connection_adapters/turso_adapter/connection_management.rb', line 45 def jdbc? false end |
#raw_connection ⇒ Object
41 42 43 |
# File 'lib/active_record/connection_adapters/turso_adapter/connection_management.rb', line 41 def raw_connection @lock.synchronize { @raw_connection } end |
#reconnect! ⇒ Object
26 27 28 29 30 31 32 |
# File 'lib/active_record/connection_adapters/turso_adapter/connection_management.rb', line 26 def reconnect!(**) @lock.synchronize do disconnect! @raw_connection = self.class.new_client(@config) configure_connection end end |