2017-03-14 50 views
1

我試圖建立一個簡單的ruby腳本,連接到數據庫並運行一些基本的查詢。Ruby Rake ActiveRecord Migrate

的代碼是在這裏:https://github.com/mastermindg/rack-activrecord-example

這不是一個服務 - 只是一個腳本,在手動運行做批處理作業。我的問題是我需要填充數據庫用於測試目的。我知道如何在西納特拉和Rails做到這一點,但它的失敗爲-是:

NoMethodError: undefined method `set' for main:Object 
Did you mean? send 
/usr/src/app/app.rb:7:in `<top (required)>' 
/usr/src/app/Rakefile:2:in `<top (required)>' 

我已經得到了database.yml的,但我不能告訴如何加載它,因爲集失敗。

如何使用ActiveRecord與基本Rack進行連接並查詢數據庫?

回答

0

1)添加到您的Rakefilerequire年代後:

DatabaseTasks.database_configuration = YAML.load(File.read(File.join(root, 'config/database.yml'))) 

2)從app.rb文件中刪除set :database_file, 'config/database.yml'(我認爲setsinatra/activerecord方法)。

運行rake db:create現在,可能會給你在你的項目中的錯誤,因爲你是在爲你app.rb文件中使用json,而不是JSON(取決於你的本地版本),所以。 。 。

3)在您的app.rb文件中將puts json Resource.select('id', 'name').all更改爲puts JSON Resource.select('id', 'name').all

現在rake db:create會拋出一個數據庫錯誤,但這是一個與您的特定數據庫配置有關的錯誤,對此進行適當調整(這與原始問題無關,所以我不會再討論它)和你的應用應該按照你的願望運行。


更多信息:

一個Rake文件的這gist shows例如內容,你可以使用,而無需使用Rails或Sinatra的經營活動記錄的任務。