2010-02-11 24 views
5

Tôi có một số tệp văn bản lớn để xử lý và hiểu rõ dữ liệu. Một phần của nhiệm vụ là lưu dữ liệu này vào cơ sở dữ liệu. Tôi muốn sử dụng Ruby, với postgres hoặc mysql, postgres là lựa chọn đầu tiên. Tôi nên đưa vào thư viện nào? Không có mô hình, nó sẽ là các câu lệnh SQL đơn giản. Làm thế nào để làm điều này mà không có đường ray?Sử dụng ruby ​​với cơ sở dữ liệu, nhưng không có đường ray

Trả lời

4

Đối với PostgreSQL, bạn muốn ruby-pg. Nó cung cấp kết nối cơ sở dữ liệu cơ bản của bạn với khả năng truy vấn nó. Tài liệu là thưa thớt, nhưng có rất nhiều mẫu mã trong cây nguồn. Dưới đây là một khá đơn giản nhất:

https://bitbucket.org/ged/ruby-pg/src/e4465a9779faed39825213d140df6b1531bb1e68/spec/pg/result_spec.rb?at=default

Edit: Các trang web MySQL liệt kê một vài tùy chọn để kết nối với MySQL.

http://dev.mysql.com/downloads/ruby.html

+0

điều này là tuyệt vời, cảm ơn bạn. bất kỳ thư viện cho mysql? – user61734

+0

Liên kết đã chết, bạn có phương án thay thế không? – JohnMerlino

+0

@JohnMerlino Họ dường như đã thay đổi các bài kiểm tra của họ xung quanh. Nhưng tôi đã cập nhật liên kết đến một ví dụ tương đương. –

0

Bạn đang theo dõi ActiveRecord, cung cấp kết nối cơ sở dữ liệu. Tìm kiếm nhanh trên google được đề xuất this có thể là một nơi tốt để bắt đầu.

+1

Nope, Tôi không muốn sử dụng ORM (activerecord là ORM, phải không?) Tôi muốn viết câu lệnh SQL của riêng tôi, giống như cách chúng tôi làm với mysql_query , mysql_connect vv trong PHP. – user61734

+0

Có, ActiveRecord là ORM và quá tải để thực thi các câu lệnh SQL đơn giản. –

+0

vẫn còn và orm nhưng ánh sáng và faaast của nó http://datamapper.org/getting-started.html - datamapper. nó cũng dễ sử dụng bên ngoài đường ray – ADAM

4

Sequel - sequel.rubyforge.org - là rất tốt là tốt. Sử dụng thư viện lõi (không phải là Sequel :: Model ORM), bạn có thể viết SQL giống như các truy vấn/câu lệnh sử dụng cú pháp Ruby.

0

cho mysql, kiểm tra mysql2 đá quý

#>> gem install mysql2 
require 'mysql2' 

client = Mysql2::Client.new(:host => "localhost", :username => "root") 
Các vấn đề liên quan