Quelle est la meilleure façon de faire des connexions de base de données par utilisateur dans Rails
? Je réalise qu'il s'agit d'une mauvaise pratique de conception de Rails, mais nous remplaçons progressivement une application Web existante qui utilise une base de données par utilisateur. Une refonte/réécriture complète n'est pas réalisable.Quelle est la meilleure façon d'effectuer des connexions de base de données par utilisateur dans Rails?
Répondre
J'utilise le sous-domaine plus "_clientdb" pour choisir le nom de la base de données. J'ai toutes les bases de données en utilisant le même nom d'utilisateur et mot de passe, donc je peux saisir cela à partir du fichier de configuration DB.
Espérons que cela aide!
class ApplicationController < ActionController::Base
before_filter :hijack_db
def hijack_db
db_name = request.subdomains.first + "_clientdb"
# lets manually connect to the proper db
ActiveRecord::Base.establish_connection(
:adapter => ActiveRecord::Base.configurations[ENV["RAILS_ENV"]]['adapter'],
:host => ActiveRecord::Base.configurations[ENV["RAILS_ENV"]]['host'],
:username => ActiveRecord::Base.configurations[ENV["RAILS_ENV"]]['username'],
:password => ActiveRecord::Base.configurations[ENV["RAILS_ENV"]]['password'],
:database => db_name
)
end
end
Jetez un oeil à ActiveRecord::Base.establish_connection. C'est ainsi que vous vous connectez à un serveur de base de données différent. Je ne peux pas être beaucoup plus utile car je ne sais pas comment vous reconnaissez l'utilisateur ou le mapper à sa base de données, mais je suppose qu'une base de données master aura cette information (et les informations de connexion devraient être sur le fichier database.yml).
Bonne chance. Mettez quelque chose comme ça dans votre contrôleur d'application.
- 1. Quelle est la meilleure façon de gérer plusieurs connexions de base de données dans C#
- 2. Quelle est la meilleure façon de concevoir une base de données pour Ruby on Rails?
- 3. Quelle est la meilleure façon de représenter les feuilles de temps dans la base de données
- 4. Quelle est la meilleure façon de dire à un framework quelle base de données utiliser?
- 5. Quelle est la meilleure façon de stocker des fichiers multimédia sur une base de données?
- 6. Quelle est la meilleure façon de convertir une base de données mysql en une base sqlite?
- 7. Quelle est la meilleure façon d'interroger le nombre de lignes à partir des données de base?
- 8. Quelle est la meilleure façon de créer des menus dynamiques pilotés par base de données dans CakePHP?
- 9. Quelle est la meilleure façon de lire les données CSV?
- 10. Quelle est la meilleure façon de stocker l'ordre entre les lignes de la base de données?
- 11. Quelle est la meilleure façon de modéliser les relations hiérarchiques définies par l'utilisateur dans une base de données?
- 12. Quelle est la meilleure façon de gérer le regroupement de connexions à l'aide de threads?
- 13. Quelle est la meilleure façon de trier par date?
- 14. Quelle est la meilleure façon de ReadLine par Expression Tree?
- 15. Quelle est la meilleure façon d'implémenter le versioning dans une base de données MYSQL?
- 16. Quelle est la meilleure façon de gérer l'envoi de nombreux courriels dans Rails?
- 17. La meilleure façon d'extraire des données d'une base de données FileMaker Pro dans un script?
- 18. Quelle est la meilleure façon de valider plusieurs emails et gérer les erreurs dans Rails?
- 19. Quelle est la meilleure façon de créer une page statique dans Rails?
- 20. Quelle est la meilleure façon de charger des données hautement réutilisées dans une application web .net
- 21. Quelle est la meilleure façon de générer des graphiques/graphiques/visualisations de données dans Adobe Flex?
- 22. Quelle est la meilleure façon de créer des déploiements ClickOnce
- 23. Quelle est la meilleure façon de garder les contrôles utilisateur dynamiques dans une page?
- 24. Quelle est la meilleure façon de stocker des données d'historique dans SQL Server 2005/2008?
- 25. Plusieurs connexions locales en Flash - quelle est la meilleure architecture?
- 26. Meilleure façon de synchroniser la base de données client avec la base de données du serveur
- 27. Quelle est la meilleure façon d'étendre restful_authentication/AuthLogic pour prendre en charge les connexions paresseuses par un iPhone anonyme?
- 28. Quelle est la meilleure façon de stocker la configuration spécifique à l'application dans les rails?
- 29. Quelle devrait être la meilleure façon de charger les paramètres de la base de données?
- 30. Quelle est la meilleure façon de déboguer un Oracle SP?