1

データベースを更新するための rake タスクがあり、そのタスクは外部フックによってトリガーされます。(svn フック)。

rake タスクは、新しいレコードを挿入し、既存のレコードのいくつかの列を更新します。データベース スキーマの変更はありません。

また、これは生産中であることにも言及する必要があります。

  • rake タスクの実行中にサーバーを停止する必要はありますか?
  • サーバーを停止した場合、訪問者が Web サイトを閲覧しているときに「更新中」のメッセージを表示するにはどうすればよいですか?
  • rake タスクが完了したら、サーバーを再起動する必要がありますか?
4

3 に答える 3

0

rake タスクの実行中にサーバーを停止する必要はありますか?

場合によります... 移行によって以前のバージョンの Rails サイトが壊れた場合 (フィールドの名前変更やテーブルの削除など)、「Web サイトを更新しています。2 分後に戻ってきてください」というページを表示する方がよい場合があります。または単にレールサーバーをシャットダウンします。

以前のバージョンのコードが新しいデータベース スキーマで機能するかどうかを自問してください。はいの場合、サーバーを停止したり、「更新中」ページを表示したりする必要はありません。そうでない場合は、移行中にサーバーを停止することを検討する必要があります。

rake タスクが完了したら、サーバーを再起動する必要がありますか?

いいえ、データベース テーブルの一部のレコードを追加/削除/変更するだけの場合。はい、データベーススキーマを変更している場合。

于 2013-07-03T15:47:49.327 に答える
0

リダイレクトに関して、サーバーを再起動しないことに決め、移行 \ シード処理に時間がかかる場合は、

// config/routes.rb
root :to => 'controller#action'

適切なメッセージを表示する新しいコントローラーに (変更はすぐに反映され、再起動の必要はありません)

于 2013-07-03T17:28:13.770 に答える