プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • Ruby on Rails
  • 【Ruby on Rails】「rake」について
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【Ruby on Rails】「rake」について

12.24

  • miyabisan2
  • コメントを書く

この記事は2分で読めます

rakeとは?

Railsで様々なタスクを実行する際に使用します。Railsをインストールしたら一緒に自動でインストールされます。

バージョンによる記述差異

rakeコマンドはRailsのバージョンによって記述方法が変わってきています。

Rails5.0以降の場合

rakeをrailsに置き換えることが可能です。(例:「rails db:create」等)

Rails4.1以前の場合

rakeをbundule exec rakeに置き換えます。(例:「bundle exec rake db:create」等)

Rakeタスクの一覧を見る。

1
rails -T

自分で定義したタスクや、元から定義されているタスク(「rake db:create」など)も含めて全て表示してくれます。

Rakeタスクの作成

1
rails g task hello

lib/tasks/hello.rakeというファイルが生成されます。

1
2
3
4
5
6
namespace :hello do
  desc "Hello World"
  task say_hello: :environment do
    puts "Hello World"
  end
end

上記ファイルであれば以下のように実行できます。

1
rails hello:say_hello

モデルを操作する

普通にRailsアプリ内に定義したmodelとかにもアクセスできます。

1
2
3
4
5
6
7
namespace :user do
  desc "ユーザー情報を表示する"
  task show: :environment do
    user = Users.find(1)
    puts user.id
  end
end

下記コマンドで実行できます。

1
docker-compose exec web rails user:show

DB関連

rake db:create

DBがまだ存在しない場合に新規に作成してくれます。

rake db:migrate

まだ未実行のマイグレーションファイルの内容を実行します。

rake db:rollback

マイグレーションのロールバックをさせることができます。

rake db:seed

seedデータの投入

自作Rakeタスクのユースケース

何かしらのデータ連携

例えば、メールの一斉送信などです。

データ更新

画面からでは時間のかかる一括処理を実行する場合など。

定期的に実行したい場合

wheneverというgemを使うのが一般的です。Railsとは別プロセスでバックグラウンドでcronを動かします。

スポンサーリンク
  • 2019 12.24
  • miyabisan2
  • コメントを書く
  • Ruby on Rails
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2019 12.01

    【Rspec】Capybaraの構文まとめ

  2. 2020 10.13

    【Ruby on Rails】「pundit」について

  3. 2020 11.22

    【Ruby on Rails】「確認画面」の実装

  4. 2018 06.19

    【Ruby on Rails】YAMLの基本と、データベースの接続設定をするには?

  5. 2019 11.23

    【Ruby on Rails】アプリケーションサーバ「Puma」、「Unicorn」について

  6. 2019 12.14

    【VSCode】Railsのデバッグ設定(Mac)

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【ネットワーク】「bindアドレス」や「0.0.0.0…

【Ruby on Rails】「bcrypt」によるロ…

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • AngularJS
  • API
  • AWS
  • C++
  • CSS
  • cursor
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Figma
  • Git
  • GitLab
  • GraphQL
  • gRPC
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 生成AI
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー