Skip to content

Commit 0dfe2e4

Browse files
committed
Fix failing to detect encoding with JDBC MySQL adapter
Also switching JRuby CI to use MySQL instead of SQLite, because of frequent '[SQLITE_BUSY]' error
1 parent 4297552 commit 0dfe2e4

3 files changed

Lines changed: 6 additions & 3 deletions

File tree

.github/workflows/test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ jobs:
5252
- ruby: jruby
5353
gemfile: gemfiles/rails_6.1.gemfile
5454
orm: active_record
55-
adapter: sqlite3
55+
adapter: mysql2
5656
asset: sprockets
5757
- ruby: jruby
5858
gemfile: gemfiles/rails_6.1.gemfile

lib/rails_admin/adapters/active_record.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,11 @@ def encoding
8080
when 'postgresql'
8181
::ActiveRecord::Base.connection.select_one("SELECT ''::text AS str;").values.first.encoding
8282
when 'mysql2'
83-
::ActiveRecord::Base.connection.raw_connection.encoding
83+
if RUBY_ENGINE == 'jruby'
84+
::ActiveRecord::Base.connection.select_one("SELECT '' AS str;").values.first.encoding
85+
else
86+
::ActiveRecord::Base.connection.raw_connection.encoding
87+
end
8488
when 'oracle_enhanced'
8589
::ActiveRecord::Base.connection.select_one('SELECT dummy FROM DUAL').values.first.encoding
8690
else

spec/rails_admin/abstract_model_spec.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,6 @@
112112
end
113113

114114
it 'lists elements within outbound limits' do
115-
pending('Due to the JRuby SQLite3 datetime boundary issue') if RUBY_ENGINE == 'jruby' && CI_ORM == :active_record
116115
expect(@abstract_model.all(filters: {'datetime_field' => {'1' => {v: ['', '2012-01-02T00:00:00', '2012-01-03T23:59:59'], o: 'between'}}}).count).to eq(2)
117116
expect(@abstract_model.all(filters: {'datetime_field' => {'1' => {v: ['', '2012-01-02T00:00:00', '2012-01-03T12:00:00'], o: 'between'}}}).count).to eq(1)
118117
expect(@abstract_model.all(filters: {'datetime_field' => {'1' => {v: ['', '2012-01-03T12:00:00', ''], o: 'between'}}}).count).to eq(2)

0 commit comments

Comments
 (0)