2009-10-26 100 views
3

我想知道數據庫是如何在通常託管在像CVS或SVN等存儲庫中的開源項目中進行管理的。在SVN中放置代碼非常合乎邏輯,因爲它允許不同的團隊成員獲得更新的代碼段,但數據庫又如何?管理開源軟件項目中的數據庫

他們的架構和內容(我假設的.sql文件)放置在SVN內嗎?在這種情況下,如果我正在創建一個Web應用程序,這是否需要開發人員繼續使用最新的.sql文件更新其本地數據庫?

或者,它更像是一箇中央服務器,成員可以修改它們的軟件並通過網絡連接到網絡上嗎?

我打算開始一個開源Web應用程序項目(需要使用數據庫),但是對於如何去做數據庫管理部分有點困惑。

回答

1

根據我的經驗,這些類型的應用程序通常包括構建中包含的數據庫設置。通常你必須在需要的地方安裝數據庫,然後安裝客戶端。另外,通常這些數據庫也是MySQL之類的開源軟件。

+0

我明白了,您是否能夠遇到有關此類設置的任何問題?我的意思是,因爲每個人都有他/她自己的本地數據庫設置和全部。 – Paul 2009-10-26 18:16:47

+0

我對這種事情唯一的負面經歷是缺乏「如何做」的方向。由於缺乏文檔,我花了無數個小時試圖讓一些開源項目正常工作。 – northpole 2009-10-26 21:17:37

+0

注意:)我只希望和祈禱隊中的某個人喜歡記錄哈哈。謝謝! – Paul 2009-10-29 14:27:27

3

通常,您將有一兩件事情:

  • 架構創建腳本
  • 初始數據被加載到數據庫

這兩個應該是文本文件。如果你的數據在加載到DBMS之前需要任何特殊的處理,那麼也包括一個工具。

你應該做的一件事不是做的是在源代碼管理中包含任何特定的二進制數據庫文件。例如,一個SQLite數據庫文件將不合適。二進制數據庫文件在架構或版本中通常不可移植。

+2

我個人喜歡Ruby on Rails的方式,即架構和遷移腳本隨着數量的增加而保存在單獨的文件中。這使得架構管理從長遠來看變得更簡單。 – 2009-10-26 18:13:36

+0

謝謝,我會注意到這兩件事情! :) – Paul 2009-10-26 18:17:25

1

這取決於你正在做的項目。例如,如果所有開發人員都在同一個公司的同一位置,中央數據庫服務器可能是應用程序。如果開發人員分佈在世界各地,那麼中央數據庫服務器可能不存在問題,每個開發人員都會創建自己的數據庫副本以供開發。

我認爲最常見的選擇是每個開發人員都使用他自己的數據庫。

在任何情況下,您都希望將模式創建和初始數據創建文件保留在版本控制中。這樣所有的開發人員都可以輕鬆創建一個新的數據庫。

+0

我們可能會在不同的地方工作,所以我想本地數據庫將是最好的選擇。謝謝 :) – Paul 2009-10-26 18:19:48