2011-03-30 47 views
4

我們正在用Django開始一個Web項目(並且對此很新穎),我想知道設置高效開發環境的最佳方式是什麼。爲Django創建開發環境

下面是一些信息:

  • 我們2個開發商對項目
  • 我們必須託管在Webfactional開發/生產服務器的工作(使用Apache服務器)
  • 數據庫(MySQL的)託管該服務器
  • 我們使用的是Eclipse與Pydev的兩個
  • 該項目在Github上庫託管在

到目前爲止,我們沒有設置任何本地開發服務器,我們正在通過Github將修改同步到服務器。但它不是很方便...

我們正在考慮在本地設置使用遠程數據庫的apache服務器,並且只在一段時間內同步一次。

你認爲這會更好嗎?

您是否有其他想法/其他建議?

謝謝!

+1

您可以在服務器上設置一個特定的數據庫(鏡像生產的數據庫)並通過網絡連接到它(例如通過SSH隧道)。這可以避免混亂的遷移並保持同步 – 2011-03-30 21:36:05

+1

作爲一個方面說明,由於您剛開始並且可能沒有任何與數據庫的關係,我建議使用PostgreSQL作爲您的數據庫。我也在使用Django開發webfaction,並且從MySQL切換到PostgreSQL後,我的生活變得非常簡單。 Django的創建者強烈推薦使用Postgres。 – Spike 2011-03-30 21:50:45

+0

@Spike感謝您的建議,我只是首先使用MySQL,因爲來自PHP世界,我更瞭解它。但我對此沒有任何爭論。你知道爲什麼Postgre被MySQL推薦嗎?它是否具有高度可擴展性?謝謝! – nbarraille 2011-03-30 22:00:03

回答

8

不要在開發時嘗試共享服務器和數據庫。你只會感到困惑。

每個開發者都應該在自己的機器上安裝MySQL的本地副本,並按照mipadi的建議運行開發服務器。通過South管理數據庫模式更改,並將數據保存在燈具中或使用South的數據遷移。每個開發人員都應該提交到他們的本地版本的git倉庫,但是隻有在特定任務完成並工作時纔會將更改推送到Github(或者,更好地,使用遠程分支以便更改同步,但只在完成時合併回主控)。

一個好主意是擁有像Hudson/Jenkins這樣的持續集成服務器,在每次提交master後,運行測試並且 - 如果它們通過 - 構建網站的最新版本,您可以用於功能/用戶測試。

編輯即可添加開發服務器與任何特定數據庫後端之間沒有關係。正如我上面推薦的那樣,在您的本地機器上安裝MySQL或PostgreSQL相當簡單,並使用開發服務器。在最初遇到一些您在sqlite3和生產MySQL數據庫之間切換時擔心的問題後,我一直以這種方式工作了好幾年。

+0

謝謝,這正是我需要的建議/建議。同樣的問題,雖然:如果他們不使用相同的Web服務器/數據庫,從本地服務器移動到遠程服務器不是很痛苦嗎?謝謝! – nbarraille 2011-03-30 22:05:03

+0

看到我上面的更新。 – 2011-03-31 07:49:37

6

Django擁有自己的development server,您可以使用它進行本地測試。

+0

是的,我知道這一點。我首先不認爲這是一個好主意,因爲它不使用相同的數據庫(從我讀的SQLite中)和相同的服務器,所以我擔心它會從本地開發遷移到遠程開發服務器痛苦。你怎麼看? – nbarraille 2011-03-30 22:02:47

+0

@nbarraille:不管怎樣,可能不希望對生產數據庫運行測試。此外,您可以使用開發模式下任何(支持的)服務器後端,包括MySQL。 – mipadi 2011-03-31 14:07:33