From 1cd150d2417ff750d75002e2fe4866cd1c651896 Mon Sep 17 00:00:00 2001 From: Ryuta Kamizono Date: Sun, 10 Mar 2019 02:06:48 +0900 Subject: Fix `reconnect!` to work after `disconnect!` --- .../connection_adapters/sqlite3_adapter.rb | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb') diff --git a/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb b/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb index cb3d34a740..5e9b3afae4 100644 --- a/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb @@ -95,8 +95,6 @@ module ActiveRecord def initialize(connection, logger, connection_options, config) super(connection, logger, config) - - @active = true configure_connection end @@ -144,14 +142,18 @@ module ActiveRecord alias supports_insert_conflict_target? supports_insert_on_conflict? def active? - @active + !@connection.closed? + end + + def reconnect! + super + connect if @connection.closed? end # Disconnects from the database if already connected. Otherwise, this # method does nothing. def disconnect! super - @active = false @connection.close rescue nil end @@ -611,6 +613,14 @@ module ActiveRecord StatementPool.new(self.class.type_cast_config_to_integer(@config[:statement_limit])) end + def connect + @connection = ::SQLite3::Database.new( + @config[:database].to_s, + @config.merge(results_as_hash: true) + ) + configure_connection + end + def configure_connection execute("PRAGMA foreign_keys = ON", "SCHEMA") end -- cgit v1.2.3