在我們當前的開發中。工作流程有主數據庫 - >DbMain。有一個過程採用最新版本的項目並自動將其部署到那裏,然後觸發單元測試。由於我們希望始終在源代碼控制中擁有項目的工作版本,因此每位開發人員都應確保他檢查工作代碼,並且所有測試都會通過。管理SSDT中每個開發人員的不同發佈配置文件
爲此,我們決定爲具有以下命名約定每個開發人員創建單獨的數據庫 - >DbMain_ XX(其中XX是開發初期)。因此,簽入前的每個開發人員都會假設手動發佈對該數據庫的所有更改並運行單元測試。爲此目的設置發佈配置非常有用,它是主發佈配置的副本,只有數據庫名稱存在差異。
這會引入我們將在解決方案中有很多不同的發佈配置文件,這是相當混亂的。
如果我們不會將這些配置文件添加到源代碼管理,那麼.sqlproj文件仍然會引用這些文件,因此項目將引用不存在的文件。
所以真正的問題。我可以爲所有使用變量更改數據庫名稱的開發人員使用單一發布配置文件嗎?例如DbName _ $(dev_initials)?或者我們可以讓每個開發人員都擁有自己的發佈配置,而且不會破壞項目嗎?
UPDATE:
按照彼得·肖特評論:
我可以創建本地發佈配置文件,但如果我不將它添加到源代碼控制,則仍處於sqlproj文件中的條目,但文件本身將不可用。
本地運行測試至少有兩個缺點。第一個是每個人都應該在本地安裝SQL Server。我們主要通過虛擬機工作,並且磁盤空間相當有限。另一件事是開發人員肯定會忘記或不會每次都不會手動運行測試。有時候他們會在沒有構建或/和運行測試的情況下推動對回購的更改。我們希望避免這種情況,並儘快「趕上」失敗的構建。
提到的另一種方法是擁有1個通用構建數據庫。在我的情況下,我們有一個(DbMain)。所有的開發人員都可以使用它來滿足它的需求,但是當2個開發人員同時發佈時,我們一定會抓住這種情況,並且通過弄清楚真正出問題的地方,可能會造成很多混亂。
您可以在本地創建發佈配置文件以不中斷項目,但是在本地構建並在其中運行測試或者具有通用構建數據庫以及打破構建的簽入/提交的公共構建數據庫會提高標記而不是創建標記每人一個DB? (不要將它作爲一個包含關鍵數據的數據庫 - 只是建立或不建立數據庫,或許首先使用測試數據。) –
@PeterSchott我已更新問題 –