簡體   English   中英

在rake任務中使用ActiveRecord :: Base.transaction?

[英]Using ActiveRecord::Base.transaction in a rake task?

我正在編寫一個rake任務,該任務有時使用一種自定義的YAML文件導入方法來播種數據庫。

耙任務看起來像:

desc "Seed the database with production/ data."
task :production => :environment do     
  import_yaml 'seed/production'
end

在導入代碼的某一點上,我有:

ActiveRecord::Base.transaction do

嘗試運行rake任務時拋出:

You have a nil object when you didn't expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.[]

堆棧跟蹤指向代碼中的上述行。

有沒有辦法在瑞克任務期間實例化ActiveRecord :: Base?

謝謝!

也許您沒有在rake任務中包含“環境”?

耙任務無法訪問rails.cache

task (:my_rake_task => :environment) do
    # ....
end

沒有=>:environment,您將無法訪問任何Rails應用程序模型

暫無
暫無

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

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