2011-01-21 35 views

回答

2

在發展:

  1. 確保Ruby的版本是一樣的。複製所有寶石。
  2. 複製應用程序
  3. 進行數據庫轉儲並將其加載到新數據庫。如果DB是完全相同的版本和操作系統以及複製二進制數據文件可能就足夠了。

在生產中最糟糕的部分是同步數據庫和DNS。

  1. 如果您可以在域名的DNS條目中降低TTL(至1小時) - 讓DNS傳播更好地響應。
  2. 等待以前的TTL +新TTL以確保所有客戶端和代理更新 - 同時您可以在新機器上準備Rails 3應用程序。
  3. 將新機器80端口上的TCP/IP轉發設置爲舊機器80端口,但工作站例外(有權訪問新機器上的應用程序實例)。
  4. 完成準備應用程序,寶石,與副本的數據庫,測試它。
  5. 如果一切正常,請將DNS A條目更改爲新的主機IP - 在此情況下,1小時內所有客戶端都將通過新的主機IP(轉發)連接到舊實例。等待1小時。
  6. 離線:停止舊實例與維護消息
  7. 製作數據庫轉儲和加載新的實例
  8. 重新啓動新的應用程序實例
  9. 關閉轉發。離線結束。
2

您使用的是git或svn等版本控制系統嗎?如果是,那麼你只需要將你的代碼簽出到新機器上。如果不是,那麼我將不會做任何事情,直到你把它放到你選擇的git/svn /你的版本控制軟件中。

寶石應由打包商照顧。一旦源代碼移出,只需在新機器的源代碼目錄中運行bundle install即可。

要移動數據庫,您可以從頭開始重建它,前提是您沒有任何重要數據(rake db:create db:migrate)。否則,使用mysqldump database_name > database_name.sql將數據庫轉儲到可以在新計算機上導入的SQL文件(cat database_name.sql | mysql new_database_name)。

相關問題