2009-06-02 62 views
2

你會將文件從DEV移動到Prod或QA到Prod嗎?你如何在你的環境中使用svn導出?任何可以共享的便利腳本?如何使用svn export將dev或QA中的文件移至生產環境?

我看了其他線程,但他們沒有足夠的信息。

我想知道將應用程序/數據庫更新從QA或DEV或Staging推送到生產環境的最佳實踐。這是一個LaMP環境。

+0

真正的問題是我們如何在促進來自各種環境的構建的同時實現成功的切換。 – 2009-06-02 12:13:12

回答

3

那麼,首先,我不會將文件直接從dev或qa移動到生產環境。就像你的問題所暗示的那樣,我會從你的SCM(在這個例子中是subversion)直接部署一個標籤發佈到你的相應環境。

一般來說,我會建議找一個專門的部署工具,如Capistrano。在學習該工具和設置部署腳本方面有一些預先投入的時間投入,但是稍後能夠說出「cap deploy qa」或「cap rollback production」以更改您的正在運行的版本的能力秒的事情將a)多於償還最初的時間投資,並且b)當事情出錯時保存你的屁股。

直接解決您的問題,但是,如果你是做手工,我會建議的過程是這樣的(使用sudo插在必要時):

  1. 有一個/opt/my_app/目錄中包含不同的多個子目錄版本,以及一個「當前」符號鏈接到任何一個現場。
  2. 點你的Apache配置/opt/my_app/current
  3. 推出一個新的版本,運行像「svn export https://my_repo/my_app /opt/my_app/1.2.3」(假設新版本1.2.3是)。
  4. 更改符號鏈接:「rm /opt/my_app/current; ln -s /opt/my_app/1.2.3 opt/my_app/current
  5. 根據需要重新啓動Apache或其他進程。

數據庫更新是一個更有趣的問題。就我個人而言,我喜歡Rails的遷移。如果你是親手做的,你可能會在你的項目中包含一些shell腳本來分別更新數據庫和回滾數據庫,但是正確保留這些版本會有些棘手,因爲它們只針對一個特定版本。我建議使用像Migrations這樣的現有系統(可以單獨使用Rails--我認爲它是某些基於Java的項目的唯一Ruby組件),或者將它作爲一個單獨的問題提出。

0

有很多方法可以做到這一點,這取決於應用程序和環境。

在LAMP環境中,我經常在生產服務器上創建一個帳戶,並檢查開發文件,就好像我正在開發那樣,進行構建,然後在本地部署。

  1. 該應用程序可能被部署爲非特權用戶。
  2. 出於安全原因,部署後可能會刪除用戶帳戶。
  3. 這通常是一個非常簡單的方法,如果你願意遠程做事,比如說ssh。
+0

但是,假設您無權訪問生產環境。 – 2009-06-02 12:09:56

+0

如果您無權訪問生產環境,那麼您必須具備相關規格。不知道這些是什麼,很難回答你的問題。 – Glenn 2009-06-02 18:41:05

相關問題