QA@IT

heroku でdb:seed にてsqlのインサート文を実行させようとしてハマっています。

1831 PV

heroku cedarでSQLite3 taps db:pushに失敗する(http://qa.atmarkit.co.jp/q/2280)ので db:seedでDBにデータを格納しようと試みています。

seeds.rb に

sql1 = ''
open File.join(Rails.root, 'db', 'hogeinsert.sql') do |f|
  sql1 = f.read
end
ActiveRecord::Base.connection.execute sql1 

でhogeinsert.sqlのinsert文群の外部ファイルを読み込んで実行させようと思ったのですが

$ heroku run rake db:seed
Running `rake db:seed` attached to terminal... failed
 !    No app specified.
 !    Run this command from an app folder or specify which app to use with --app <app name>

と失敗します。

外部ファイル読み込みしないで、sql文を直接編集しても

$ heroku run rake db:seed
Running `rake db:seed` attached to terminal... failed
 !    No app specified.
 !    Run this command from an app folder or specify which app to use with --app <app name>

となり、念のために rake実行可能をお伺いしてみると

$ heroku run rake -T
Running `rake -T` attached to terminal... failed
 !    No app specified.
 !    Run this command from an app folder or specify which app to use with --app <app name>

同じなので、そもそも herokuでは rake db:seedは使えないという.....

herokuでDBにまとめてデータをセットするよい方法があれば、ご教示ください。

回答

! No app specified.
! Run this command from an app folder or specify which app to use with --app <app name>

というエラーメッセージが表示されているので、プロジェクトルートに cd して実行するかもしくは

heroku run rake db:seed --app appの名前

を実行したら動きそうな気がします。

編集 履歴 (0)
  • ありがとうございます!! プロジェクトルートにCDして実行したらすんなり動きましたぁ orz 
    .............
    -
ウォッチ

この質問への回答やコメントをメールでお知らせします。