0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【豆知識】CSVファイルインポートを少し学ぶ

Last updated at Posted at 2024-09-03

はじめに

選択形式のフォームを用意して、都道府県を選べるようにするならdb/seeds.rbに必要事項入力すればいいのですが、私はもっと沢山のデータを選択形式で行いたかったので、どうすればいいか調べていました。
何とかcsvファイルは作成したもののいざ、インポートする段階になった時rakeseedの2パターンあることを知りました。

なので、今回はインポートの方法でrakeとseedでの違い、それぞれの特徴、メリットデメリット、などをアウトプットしたいと思います

環境

  • Windows, WSL
  • Docker
  • Ruby 3.2.3
  • Rails 7.1.3

それぞれの特徴など

1. Rakeタスク

特徴

  • Rakeタスクは、特定の処理を行うためのスクリプトを作成できる
  • lib/tasksフォルダにRubyファイルを作成して、その中にタスクを書く

メリット

  • 汎用性が高い:特定の処理を何度でも実行できる。
  • 開発環境や本番環境に影響を与えず、必要な時だけ実行できる。
  • データのインポート処理を分けることで、初期データと運用データを明確に管理できる。

デメリット

  • 手動で実行する必要がある(rails import:csvのように)。
  • 初心者には少し複雑に感じる場合がある。

2. seeds.rb

特徴

  • アプリケーションの初期データを設定するためのファイル。
  • db/seeds.rbに初期データの作成コードを書く。

メリット

  • 簡単にデータベースを初期化できる:rails db:seedで実行できる。
  • 新しいプロジェクトや環境を立ち上げる際に、簡単にデータを投入できる。

デメリット

  • 本番環境でも実行されるため、意図しないデータの挿入があるかもしれない。
  • 初期データが多くなると管理が難しくなることがある。

Rakeタスクの実行環境について

RakeタスクでCSVをインポートした場合、開発環境と本番環境の両方で実行できます。実行する環境によって影響が出るかもしれないから、注意が必要です。特に、本番環境ではデータの整合性を保つために、実行する内容を確認することが重要になります。

CSVを何度も修正する場合

CSVを何度も修正する可能性があるなら、Rakeタスクを使った方がおすすめのようです。理由としては次のようなことが挙げられます。

  • Rakeタスクは実行するたびにデータをインポートできるから、修正後のCSVを簡単に再実行できる。
  • seeds.rbは基本的に初期データを設定するためのものだから、何度も実行するのは向かない場合がある。

さいごに

詳しいインポートするためのコードや導入手順については割愛。
RakeとSeed2パターンあることを今回初めて知ることができてよかったです。
この記事が何か参考になれば幸いです。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?