2009-12-29 65 views
0

這是特定於我目前的項目。但也許答案會揭示一些更通用的解決方案。將django項目部署到測試服務器的好方法?

這裏的情況是:

  • 我發展Django項目在我的Windows盒
  • 我使用SVN提交到SVN倉庫
  • 同時開發我用自帶的Django
  • 開發服務器
  • 有一個測試服務器(apache)運行在其他地方,每次我完成一些我需要手動複製我的工作通過WinSCP /膩子,並確保它在測試服務器上工作
  • 測試服務器可供我們的測試人員使用並測試和報告錯誤

我想自動執行此過程,因爲這是非常痛苦的。它涉及到我導出整個存儲庫,複製到測試服務器,擺脫pyc文件,有時重新啓動apache,使用正確的settings.py(通常是一些重命名)。

我想讓測試服務器在每次SVN提交後自動檢索新文件。我可以編寫一個自定義腳本來完成所有這些工作,但是有一些事情告訴我有一些易於使用的解決方案可以用來改變我的工作流程,使事情變得不那麼痛苦。

一個額外的獎金。有一位設計師直接在測試服務器上處理模板上的HTML/CSS。我需要檢查他是否進行了更改,然後將它們轉移到我的計算機上,然後轉移到SVN代表。我的老闆認爲給他SVN訪問太危險了。任何想法,以幫助我與此,也?

回答

2

部署:

我要說它更好地做到部署你的生產做同樣的方式。面料是good solution

SVN方式:

如果你想這樣做在SVN的方式,創建一個分支叫測試,一旦你有你的代碼和測試工作版本準備開發分支合併到測試科。確保您有權在測試分支上限制每個人合併到測試分支。合併後,測試團隊應該對特定版本進行更新。

.pyc文件

它不需要手動刪除文件PYC可以添加一個SVN鉤子,可以忽略提交PYC文件。創建一個文件。svnignore

*.pyc 

並運行此命令

svn -R propset svn:ignore -F .svnignore . 

如果你已經有了自己陷入版本編譯的文件的混亂,那麼你可以做任何的這些東西。

find -name "*.pyc" -exec svn revert {} \; 
find -name "*.pyc" -exec svn delete {} \; 

Django的設置文件

您可以設置環境變量,通過它Django的可以採取了相應的設置文件。 Django set env

設計師

以及設計師直接在測試服務器上的工作是不是一個獎勵積分。 :)它的頭痛。在理想的環境中,沒有人應該觸摸測試服務器中的代碼。爲設計人員創建一個單獨的分支,或者他可以提交給所有開發人員可以合併的開發分支。

0

一種選擇是創建一個只讀的svn用戶,並讓它檢出Apache服務器上的svn存儲庫。然後做一個build,運行'svn update'。您可以通過執行'svn status'來檢查設計者是否修改了文件。

如果你的svn倉庫與你的qa django實例在同一臺機器上,你可以使用post-commit鉤子在每次提交後使用svn update,並在需要時反彈apache。見http://subversion.tigris.org/faq.html#website-auto-update

相關問題