2010-10-29 85 views
3

我有一個Django網站放置在文件夾site/。它受版本控制。我使用South爲我的應用程序進行模式和數據遷移。特定於站點的應用程序位於文件夾site/之下,因此它們都與版本控制一起進行版本控制。版本控制在virtualenv南遷移

我管理一個virtualenv以保持第三方組件的乾燥和安全。我通過PyPI安裝軟件包。已安裝的軟件包列表被凍結在requirements.txt中,因此它們可以很容易地安裝在其他環境中。 virtualenv不在VCS下。如果virtualenv可以隨時輕鬆刪除和重建,我認爲這是一個好方法。如果我需要測試我的網站,例如,使用其他版本的Python解釋器,只需激活另一個virtulalenv即可。

雖然,我想用南方的第三方軟件包。問題來了。遷移腳本存儲在應用程序的文件夾中,因此它們位於我的網站存儲庫之外。但我希望遷移腳本處於版本控制之下,以便我可以在不同的階段運行它們。

我不想版本控制整個virtualenv,但爲第三方應用程序的遷移腳本。我該如何解決這個衝突?我的方案中是否存在任何誤解?

回答

1

SOUTH_MIGRATION_MODULES setting允許您將指定應用程序的遷移模塊放在任何需要它們的地方(即在您的項目樹中)。

+0

謝謝,它解決了我的問題。 – 2010-10-31 20:05:05

0

我認爲這取決於你的版本控制系統上的一點點。我建議使用稀疏樹,它只管理各種軟件包的遷移文件夾。在這裏我看到兩種方案:

  1. 爲所有包創建一個真正稀疏的樹,一個在創建virtualenv之前檢出的樹。然後填充virtualenv,將東西放入現有的文件夾中。

  2. 將所有遷移收集到單獨的存儲庫中,併爲每個項目/外部依賴項設置一個文件夾。檢查到virtualenv,並創建符號鏈接,從每個項目鏈接到其遷移文件夾。

在任何情況下,我相信你可以安排遷移到作爲一個單獨的項目存在,所以你可以用相同的過程,在安裝一切安裝它(的easy_install/PIP /不管)。