2013-07-03 84 views
1

我有rake任務來更新我的數據庫,任務是由外部鉤子觸發的。 (svn鉤子)。當我運行rake更新db時,是否必須停止rails服務器?

rake任務將插入新記錄並更新現有記錄的某些列。沒有數據庫模式更改。

我還應該提到這是在生產中。

  • 當耙式任務運行時,是否必須停止服務器?
  • 如果我停止服務器,當訪問者瀏覽網站時如何顯示「更新」消息?
  • 耙機任務完成後是否必須重新啓動服務器?
+0

在開發或生產? – Mischa

+0

@Mischa在生產中。 –

回答

1

您不應該爲Rake重新啓動rails服務器:db:migrate rake:db:reset或rake:db:create。

+1

取決於環境。我很確定你必須重新開始生產。 – Mischa

0

當耙式任務正在運行時,是否必須停止服務器?

這取決於...如果遷移打破軌道站點(例如場或重命名錶中刪除),那麼它可能會更好地展示某種「我們正在更新網站的早期版本,請進來在兩分鐘內返回「頁面或者只是關閉rails服務器。

問問你自己,你以前的代碼版本是否可以與新的數據庫模式一起工作?如果是,那麼你不必停止服務器或顯示「我們正在更新」頁面。如果不是,那麼您應該考慮在遷移期間停止服務器。

耙機任務完成後是否必須重新啓動服務器?

不,如果您只是添加/刪除/更改數據庫表中的某些記錄。 是的,如果你正在改變數據庫模式。

0

關於重定向,如果你決定不重新啓動服務器,遷移\播種花費很長的時間,那麼就改變

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

一些新的控制器,將顯示相應的消息(改變它將立即生效,無需重啓)

相關問題