質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

2回答

4926閲覧

rails db:seedについて

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2018/09/23 12:29

今、新しくseedデータを書き換えたところなのですが、それを適用する際にローカルだと

rails sb:migrate:reset rails db:seed

とやると思うのですが、このseedデータを本番にも適用したい場合、本番で

heroku run rails db:migrate:reset --app [アプリ名] heroku run rails db:seed --app [アプリ名]

とやると本番データも飛んでしまうと思うのですが、本番のデータを飛ばさずにseedを適用させるにはどのようにしたら良いのでしょうか?ご存知の方がいらっしゃいましたらよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CHERRY

2018/09/23 12:53

reset しなければいいのでは?
guest

回答2

0

ベストアンサー

それを適用する際にローカルだと「rails sb:migrate:reset」「rails db:seed」とやる

たしかに、標準のseed機能は貧弱なので、うっかりしていると同じレコードが複数入ってしまったりして煩雑となります。

seed-fuのようにライブラリを用意しておいて、何度seedを走らせても問題ないようにしておく、というのが便利かもしれません。

投稿2018/09/23 13:38

maisumakun

総合スコア145121

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

db:migrate:reset
するから、DB が削除されてしまいますね。

参考情報

  • DB 全レコードを削除したい場合

https://codenote.net/ruby/rails/3925.html

...
db:reset のときの処理の流れは、
全テーブルを drop する
db/schema.rb を元にテーブルを再作成する
です。
...

seed は 通常は 単に現状の dB に record を登録していくだけでという書き方をします。
したがって、 reset せずに DB を追加するようにするには、それなりの工夫が必要です。

  • 環境ごとに投入する初期データを変える

https://qiita.com/kimihito_/items/753390a5fe42a41b1d60

  • railsで初期データを入れる(seed-fuの使い方)

https://qiita.com/ko2ic/items/be96e450a33d631e0059

...
railsにある仕組みとして rake db:seed があります。
これは、何も考えずに使うと実行するたびに同じデータが登録されてしまいます。
そこで、代わりにseed-fuを利用するわけです。

seed-fuは、すでに存在しているが変更したいレコードだけ更新したり、ファイル単位で実行できたり、簡単に書けるようなシンタックスシュガーがあったりと便利です。
...

投稿2018/09/23 14:03

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問