Dans database.yml, vous définissez tous les paramètres. Comment puis-je accéder à ces paramètres depuis ruby ? J'ai regardé dans App::Application::config
, mais je ne le trouve pas. De plus, je me souviens que les gens pouvaient configurer les paramètres de la base de données sans yaml, est-ce que quelqu'un sait comment ?
Réponses
Trop de publicités?Depuis Rails 6.1, vous devez utiliser ActiveRecord::Base.connection_db_config
. Vous pouvez donc accéder aux autres méthodes de classe, comme database()
.
db_config = ActiveRecord::Base.connection_db_config
print db_config.database
# main available methods: [:host, :schema_cache_path, :migrations_paths, :config, :database, :_database=, :checkout_timeout, :reaping_frequency, :idle_timeout, :replica?, :configuration_hash, :adapter, :pool]
Un moyen supplémentaire d'obtenir plus d'informations consiste à utiliser les méthodes d'informations de connexion spécifiques à la base de données. Par exemple, si vous utilisez postgresql, vous pouvez obtenir les détails de la connexion à la base de données actuelle avec :
ActiveRecord::Base.connection.raw_connection.conninfo_hash
Cela donnera plus de détails de connexion, pas seulement ceux qui diffèrent des valeurs par défaut.