簡體   English   中英

如何通過Ruby Gem訪問Rails DB

[英]How to Access Rails DB via a Ruby Gem

我正在嘗試制作一個簡單的Ruby Gem,它可以通過命令行可執行文件訪問Rails數據庫(例如sqlite)並將其導出到CSV文件。 我在弄清楚如何進入數據庫以將行等轉換為CSV時遇到麻煩。 現在,我的直覺告訴我要查看ActiveRecord,但是我發現的所有信息都在Rails中調用了它,而不是通過gem調用了它。 另外,如果有人對我可能會遇到的其他數據庫格式的問題有任何見解,並從中轉換(例如PostgreS或Mongo),將不勝感激。 只是想把我的頭纏在這件事上。

編輯:我想真正的問題是我不知道從哪里開始。 我應該在可執行文件(bin / [cmd])中還是在rake任務(無論是什么)中調用ActiveRecord還是其他功能? 現在,我在lib / gem.rb文件中調用它( puts ActiveRecord.base.connection放進去,看它是否工作),但是在命令行上通過可執行文件(bin / gem)運行它,並得到一個“未初始化的常量Gem :: ActiveRecord。”

互連網上有許多解決方案。 首先,如果您需要轉儲表或整個數據庫,則可以使用純SQL進行。 其次,如果不是這種情況,並且您需要從活動記錄中提取信息並以CSV格式導出,則建議您查看CSV標准庫。

http://ruby-doc.org/stdlib-2.1.2/libdoc/csv/rdoc/CSV.html

然后,您可以從活動記錄中提取行並進行相應的格式化。 在查看csv庫之后,您可以執行以下偽代碼。

MyModel.where.....find_each do |row|
  csv << [row.name, row.number, row.otherthing]
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM