LoginSignup
5
3

More than 3 years have passed since last update.

[Rails]本番環境でSeed-fuを使う

Posted at

本記事投稿のいきさつ

railsでアプリを作成している中で、Seed_fu Gem を使用しました。
その際、開発環境では上手くテーブルにデータを格納することができたのですが、本番環境で苦戦したため備忘録として書きます。
ここでは、自分が苦戦したEC2内でのコマンドのみを書きます。

エラー(異なるディレクトリでコマンドを入力していたため)

自分が作成したアプリのディレクトリへ移動しコマンドを入力したところ

Mysql2::Error::ConnectionError: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

と、mysplに接続ができないというエラーが発生。
これはコマンドを入力するディレクトリが誤っていたため発生したエラーでした。
実は開発環境とは異なり、本番環境ではcurrentディレクトリ内のデータが本番環境で動いているフォルダ群になります。
そのためcurrentディレクトリへ移動した後、再度コマンドを入力します。

 cd current
 rails db:seed_fu

これで大丈夫かと思われましたが、またしてもエラーが。

エラー(コマンド誤り)

Could not load the 'listen' gem. Add `gem 'listen'` to the development group of your Gemfile

listen gem がないとのこと。
まさかと思いgemfileを確認したところちゃんと書かれていました。
調べたところ、seedでデータを投入する際は環境の指定をする必要があるようです。ということで以下を再度実行。

rails db:seed_fu RAILS_ENV=production

今度は成功しました。初めての経験で苦戦しましたが、とても勉強になりました。
ちなみに、test環境でも同じように以下を実行すれば大丈夫です。

rails db:seed_fu RAILS_ENV=test

おわり

最後まで見ていただきありがとうございました。

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3