Y a-t-il des moyens de récupérer la chaîne de connexion de base de données où mon rubis est connecté? Ce que je voudrais obtenir est le: p>
1) Nom de la base de données où le rubis est connecté 2) Le nom d'utilisateur du serveur SQL 3) mot de passe du serveur SQL 4) Nom du serveur P>
Je veux le stocker dans des variables de session. P>
(I'am utiliser MS SQL Server.) P>
aide s'il vous plaît! merci! p>
5 Réponses :
Ces valeurs sont toutes stockées dans le fichier config / base de données.yml code>, mais afaik Vous ne pouvez pas accéder à ces valeurs comme variables de votre contrôleur. P>
Votre application pourrait lire / interpréter le fichier config / base de données.yml. Il aurait alors toutes les informations à faire avec comme il le souhaitait.
base de données: Vous pouvez également faire des regex fantaisistes avec les éléments suivants: p> mais Oui, c'est une idée terrible. P> p> activeCord :: base.connection.current_database code>
Utilisation de ActiveRecord :: base.connection.InSpect montre le nom d'utilisateur et le mot de passe, mais j'ai des problèmes dans les regexs, je ne peux pas me permettre de laisser le mot de passe seulement
Vous pouvez accéder à toutes les propriétés décrites dans votre base de données.YAML comme ceci:
Cela a parfaitement travaillé pour moi. J'avais besoin d'écrire une tâche de râteau que mysqldump'ed Notre base de données de production et que je ne voulais pas avoir à coder de manière rigide les chaînes de connexion en dehors du fichier de base de données.yml.
J'irais avec activerecord :: base.connection_config code> qui renvoie hachage avec des options pour ActiveRecord 3. P>
Il y a un appelant connace_db_config code> qui retourne
activerecord :: DatabaseConfigurations :: URLConfig code> objet, qui ressemble à ce
URL code> vous donnera votre URL de connexion: P>
> "#{ActiveRecord::Base.connection_db_config.url}/#{ActiveRecord::Base.connection_db_config.database}"
=> "postgresql://postgres@localhost:5432/your_project_development"
Je ne vais même pas demander pourquoi vous voudriez stocker ces variables de session. D'accord. Pourquoi voulez-vous les stocker en session?
Parce que je dois appeler une application CGI, cette CGI doit se connecter à la base de données où mon rubis est connecté. Notez que chaque client a des chaînes de connexion différentes, la chaîne de connexion de l'application CGI doit donc être dynamique en fonction de la chaîne de connexion Ruby. J'espère que vous pourrez m'aider avec celui-ci. Merci