2010-02-18 22 views
5

Bất kỳ đề xuất nào cho một mô-đun giữ các truy vấn SQL bên ngoài ứng dụng, đối với các chương trình Ruby? Tôi đang tìm cách để tránh hardcoding truy vấn SQL và có thể để hỗ trợ nhiều backend SQL trong một tập hợp các chương trình mà làm cho các truy vấn SQL trực tiếp (có nghĩa là, không qua trung gian thông qua một ORM).Mô-đun SQL bên ngoài ruby ​​

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) 

Trong perl Tôi có thể sử dụng một cái gì đó kỳ lạ hoặc hơn như CAM::SQLManager.

+0

Nghe có vẻ thú vị, nhưng tôi tin rằng mô-đun/đá quý này phải được viết trước. Dường như không quá phức tạp./Bạn có tìm thấy giải pháp nào sau thời gian dài này không? – asaaki

+0

@asaaki, chưa, chưa. Tôi đã có một số vết trầy xước chưa được phát triển được xây dựng trên đầu trang của RDBI (Ruby/DBI khởi động lại), tuy nhiên. – pilcrow

Trả lời

4

Sequel là nhẹ hơn và linh hoạt hơn so với ORMs khác như ActiveRecord và DataMapper:

http://sequel.rubyforge.org/

hoặc bạn có thể sử dụng Ruby DBI:

https://github.com/RDBI/rdbi (chỉnh sửa)

có lẽ bạn sẽ muốn viết một số lớp để đọc các truy vấn từ một tệp bên ngoài, như bạn đã hỏi.

+1

có! Nhưng xin vui lòng xem ['RDBI'] (https://github.com/rdbi) chứ không phải là ruby-dbi cũ. – pilcrow

+0

liên kết đã chỉnh sửa, cảm ơn bạn;) –

+0

Có, trình trợ giúp tải tệp RDBI + và mọi thứ sẽ hoạt động như mong đợi. – asaaki

Các vấn đề liên quan