私の大きなアプリケーションでは、Railsコンソールのロードに時間がかかります。コマンドを簡単に1つにする方法はありますか?
自動化もできるようにしたいのですが、echo "query" | Rails console
は物事を行うのに最適な方法ではありません。
考え?
編集:必要なときにいつでもクエリにpingできる長期実行プロセスについてはどうですか?
コンソールの外でコマンドを実行するには、主に2つの方法があります。
Railsランナー(以前のスクリプト/ランナー)、例:
$ Rails runner "query"
Railsガイド: http://guides.rubyonrails.org/command_line.html
ところで:これらの方法はどちらも、コンソールが起動するのと同じ時間かかりますが、非インタラクティブなタスクには役立ちます。
パイプするだけです:
echo 'puts Article.count' | bundle exec Rails c
Spring のため、最初に質問されたときよりもはるかに速くなります。すぐにはいきませんが、アプリ全体を起動するよりもはるかに高速です。これを高速レーンに使用します。1秒未満で実行する必要があります(必要なコマンドが高速であると想定しています)。
echo 'puts Article.count' | spring Rails c
単一の長期実行プロセスが本当に必要な場合は、POSTに対して何でも実行するコントローラーアクションを作成し、エイリアスの後ろにあるcurlを使用してコマンドを送信することで、簡単に実行できます。もちろん、アクションは完全に安全ではなく、本番環境の近くで実行されないようにトリプルガードする必要がありますが、セットアップは簡単です。