Я обновил приложение до Rails 6.1.0 (с 6.0.3.3, создав новое приложение только для API, добавив RSpec, а затем скопировав необходимые файлы вручную).
Я вижу следующее предупреждение при запуске RSpec:
DEPRECATION WARNING: connection_config is deprecated and will be removed from Rails 6.2 (Use
connection_db_config instead) (called from <top (required)> at
[...app/models/application_record.rb:1].
Я не менял класс ApplicationRecord по умолчанию:
class ApplicationRecord < ActiveRecord::Base
self.abstract_class = true
end
Я вижу это предупреждение только при запуске RSpec. Я не видел его ни в консоли rails, ни в журнале сервера Rails.
Вот мой config/database.yml:
default: &default
adapter: postgresql
encoding: unicode
host: <%= ENV.fetch('DATABASE_HOST', 'localhost') %>
username: <%= ENV.fetch('POSTGRES_USER', 'postgres') %>
password: <%= ENV.fetch('POSTGRES_PASSWORD', '') %>
database: <%= ENV.fetch('POSTGRES_DB', 'myapp_development') %>
pool: 5
timeout: 5000
development:
<<: *default
test:
<<: *default
database: myapp_test
production:
<<: *default
Любые предложения о том, как избавиться от этого?
Спасибо за предложение @jakubm. Смотрите мой ответ.
Да, я тоже использую money-rails, но ничего не указывало на это.





После дальнейшей отладки я смог отследить его до драгоценного камня money-rails.
https://github.com/RubyMoney/money-rails/issues/601
Я видел это как в money-rails, так и в honeybadger (v4.5), обновление обоих исправило это. Мораль этой истории заключается в том, чтобы взглянуть на ваши журналы rspec, они должны указать, какая строка / драгоценный камень вызывает проблемы. Спасибо, Марк!
добавление ActiveRecord.legacy_connection_handling = false в application.rb удалило предупреждение.
Корневое исправление для меня:
От
ActiveRecord::Base.connection_config.to_h.deep_dup
К
ActiveRecord::Base.connection_db_config.configuration_hash.deep_dup
У меня такая же ситуация, но путь предупреждения указывал на
devise_auth_token. Этот драгоценный камень использует устаревшееconnection_configвместоconnection_db_config. Когда я вручную заменил устаревшую строку в файле gem - предупреждение исчезло. Я искал в rspec место, где используетсяconnection_config, но ничего не нашел. Используете ли вы какие-либо другие драгоценные камни?