2014-04-11 73 views
-1

我正在爲Django中的一個組織製作網站。一切工作正常,但每次我都不想改變某些東西時,我會嘗試使用本地「鏡像」(複製所有文件),如果一切正常,我會將它「推送」到實際的網頁。有時候,例如小模板編輯等,我在實際的網頁上做,因爲製作新的副本是無聊的。如何鏡像我的網站以進行更改

所以我的問題是:有沒有像github commit-push系統開發網站?什麼東西,什麼可以讓我做一種方式從實際的網頁同步到我(不一定是本地)的副本,並在這個副本上嘗試這些更改後,我可以「推」到主(當然只有更改的文件)?

感謝

+0

剛纔使用'git'出現問題,正如你的問題所描述的那樣? 'rsync'也是一個非常了不起的FTP替代品(不記得上次我必須使用FTP而不是'ssh' /'rsync')並且只複製已更改的文件。 –

+0

它在我看來有點像很多工作。但是使用Fabric它看起來可以忍受。 – kotrfa

回答

0

你可能想看看Fabric。它本質上是一個圍繞ssh的包裝器,是滿足您所有部署需求的絕佳工具。通過Fabric,您可以在Python中編寫所謂的「任務」,完成通常在shell中執行的所有重複性任務。

要對你的開發環境(反之亦然)更新您的生產環境中的一些共性的東西做的是:

  • SSH連接到服務器
  • 激活的virtualenv
  • cd到項目目錄
  • git update
  • 收集靜態文件
  • touch the wsgi file
  • 拷貝過來的一些媒體文件(通過rsync,SFTP或其他)
  • 轉儲或導入數據庫
  • ...
與面料

現在你包所有這些東西的任務,以後可以從您的開發環境運行。

在您爲特定的環境和需求編寫和組合所有任務之前,可能需要一段時間,但這是非常值得的。

+0

謝謝! 編輯:不幸的是,它只適用於Python 2.我目前在3.4。但看起來主人應該工作。會試試看。 – kotrfa