2010-02-18 3 views
5

Des recommandations pour un module qui garde les requêtes SQL externes à l'application, pour les programmes Ruby? Je cherche à éviter les requêtes SQL codées en dur et éventuellement à prendre en charge plusieurs backends SQL dans un ensemble de programmes qui effectuent des requêtes SQL directes (c'est-à-dire non médiatisées via un ORM).Ruby externalisé Module SQL

Hyopthetically:

# Production system is pg, dev environment is sqlite 
sql_book = What::Module::Here.load(a_file, 
            ENV['DEVEL'] ? 'PostgreSQL' : 'SQLite3') 

# Okay, now get all Widget IDs 
r = db_handle.execute(:load_all_widget_ids) 

En perl je pourrais utiliser ou quelque chose de plus exotique comme CAM::SQLManager.

+0

Semble intéressant, mais je crois que ce module/gemme doit être écrit en premier. Ça ne semble pas trop compliqué./Avez-vous trouvé une solution après cette longue période? – asaaki

+0

@asaaki, non, pas encore. J'ai quelques scratchings inédits construits sur le RDBI (redémarrage de Ruby/DBI), cependant. – pilcrow

Répondre

4

Sequel est plus léger et plus souple que d'autres ORM comme ActiveRecord et DataMapper:

http://sequel.rubyforge.org/

ou vous pouvez utiliser Ruby DBI:

https://github.com/RDBI/rdbi (édité)

peut-être vous voulez écrire une couche pour lire les requêtes à partir d'un fichier externe, comme vous l'avez demandé.

+1

oui! Mais s'il vous plaît voir ['RDBI'] (https://github.com/rdbi) plutôt que le vieux ruby-dbi. – pilcrow

+0

lien édité, merci;) –

+0

Oui, l'assistant de chargement de fichiers RDBI + et tout devrait fonctionner comme prévu. – asaaki

Questions connexes