Dot-Net

在原始碼管理中管理我的數據庫

  • October 9, 2011

由於我正在處理一個新的數據庫項目(在 VS2008 中),並且由於我從未從頭開始開發過數據庫,因此我立即開始研究如何在原始碼控制(在本例中為 Subversion)中管理數據庫。

我找到了一些關於 SO 的資訊,包括這篇文章:保持開發數據庫在多個環境中同步其中一個答案特別指出了許多連結,所有這些連結都有很好的有用資訊。

我正在閱讀 K. Scott Allen 的一系列文章,其中描述了他如何管理數據庫更改。根據我的閱讀(請原諒我的問題的愚蠢),似乎數據庫本身從未檢入儲存庫。相反,可以建構數據庫的腳本以及測試數據(也從腳本中填充)被檢入儲存庫。最終,這意味著,當開發人員測試他或她的應用程序時,這些作為建構過程一部分的腳本會執行。這可以確保數據庫是最新的,但也可以在每個開發人員的機器上本地執行。

這對我來說很有意義(如果我確實正確地閱讀了)。但是,如果我遺漏了什麼,我將不勝感激更正或額外的指導。此外,我想問的另一個問題 - 這是否也意味著我不應該入從 Visual Studio 創建的mdfldf文件?

感謝您的任何幫助和額外的見解。一直很欣賞。

沒錯,您應該簽入腳本而不是數據庫文件本身。

我不喜歡從測試數據建構,除非數據本身會模仿生產中擁有的數據大小(或者在新數據庫的情況下,打算擁有)。為什麼?因為針對具有 100 條記錄的表編寫程式碼並不能告訴您當您有 10,000,000 條記錄時它是否會及時執行。我有太多糟糕的設計選擇來自那些認為小數據集適合開發的人。

在這裡,我們不允許開發人員在他們的機器上擁有一個單獨的數據庫(這通常會限制數據庫的大小,因為不是連接到 SAN 的伺服器),而是他們必須針對定期刷新的開發數據庫工作prod(然後執行所有新的開發腳本)以保持數據大小正確。我認為您的開發數據庫環境盡可能與 prod 匹配非常重要,包括設備配置、數據庫大小等。沒有什麼比花很長時間開發一些在 prod 上根本不起作用或必須是的東西更令人沮喪的了立即刪除,因為它太慢了系統。

現在從我的肥皂盒上跳下來。

引用自:https://stackoverflow.com/questions/2776007