90 votes

comment vérifier le nom de la base de données utilisée par ActiveRecord

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 ?

126voto

tsherif Points 3992
Rails.configuration.database_configuration

Cela vous donnera une table de hachage avec les configurations pour chacun de vos environnements. Par exemple, pour obtenir le nom de votre base de données de développement :

 Rails.configuration.database_configuration["development"]["database"]

91voto

iGEL Points 2091

Dans Rails 4.2, vous pouvez faire ceci :

 ActiveRecord::Base.connection.current_database

Vous pouvez également demander à des modèles spécifiques leur base de données (puisqu'il est possible d'utiliser différentes bases de données par modèle) :

 User.connection.current_database

12voto

williamlopes Points 166

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]

11voto

fairchild Points 110

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.

2voto

tommyb67 Points 21

Pour vous greffer sur les commentaires de tsherif, vous pouvez exécuter les commandes Rails.configuration dans la console rails (rails c) pour obtenir les noms de la base de données.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X