Я обновил приложение до 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
, но ничего не нашел. Используете ли вы какие-либо другие драгоценные камни?