Skip to content

Commit ff742bf

Browse files
committed
Don't force SQLite immediate transaction for Rails >= 8
These are default built-in since Rails 8 See: rails/rails#50371
1 parent dfcf647 commit ff742bf

1 file changed

Lines changed: 7 additions & 6 deletions

File tree

test/dummy/config/initializers/sqlite3.rb

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
module SqliteImmediateTransactions
22
def begin_db_transaction
3-
if Rails.gem_version < Gem::Version.new("8.2")
4-
log("begin immediate transaction", "TRANSACTION") do
5-
with_raw_connection(allow_retry: true, materialize_transactions: false) do |conn|
6-
conn.transaction(:immediate)
7-
end
3+
log("begin immediate transaction", "TRANSACTION") do
4+
with_raw_connection(allow_retry: true, materialize_transactions: false) do |conn|
5+
conn.transaction(:immediate)
86
end
97
end
108
end
@@ -26,7 +24,10 @@ def configure_connection
2624

2725
ActiveSupport.on_load :active_record do
2826
if defined?(ActiveRecord::ConnectionAdapters::SQLite3Adapter)
29-
ActiveRecord::ConnectionAdapters::SQLite3Adapter.prepend SqliteImmediateTransactions
27+
# Rails 8.0+ has immediate transactions built-in
28+
if Rails::VERSION::MAJOR < 8
29+
ActiveRecord::ConnectionAdapters::SQLite3Adapter.prepend SqliteImmediateTransactions
30+
end
3031
ActiveRecord::ConnectionAdapters::SQLite3Adapter.prepend SQLite3Configuration
3132
end
3233

0 commit comments

Comments
 (0)