2009-09-28 58 views
29

我正在調查使用Umbraco爲我的網站,到目前爲止我很喜歡它。Umbraco:使用版本控制?試/生產?

我遇到的一個大問題是,我如何才能版本控制Umbraco網站,因爲大量數據都在數據庫中?

如何設置測試/開發環境並以簡化的方式部署到生產環境?

今天(沒有Umbraco)我用SVN。用不同的數據庫副本進行測試和生產。

我建立的網站基本上是一個個人廣告網站,有一個完整的後端。它會使umbraco表保存在一個sepparate數據庫中,並將我的業務數據保存在另一個數據庫中嗎? (通過一堆用戶控件訪問)

回答

33

這是開始使用Umbraco的常見障礙,答案是使用適合您的東西。關於這事上一把umbraco論壇

但是已經有很多的討論,看看這裏:

http://our.umbraco.org/forum/core/general/3619-Source-control-and-multiple-developers http://our.umbraco.org/forum/getting-started/installing-umbraco/2918-Update-an-Umbraco-website?p=0#comment11311

要考慮的關鍵是內容和代碼劃分。 umbraco中的大部分代碼都存儲在數據庫的外部,因此可以存儲在subversion或任何其他源代碼管理平臺中。例如,模板,XSLT,CSS,XSLT擴展等都存儲在文件系統上。

頁面內容和網站結構存儲在數據庫中。

有一些灰色地帶,最值得注意的是字典,它可以包含各種各樣的東西以及內容。

我們用一把umbraco的工作方式如下:

我們有一個獨立的Visual Studio Web Project它包含了模板,XSLT,CSS,事件處理程序,用戶控件等,這是存儲在SVN文件夾。然後在構建這個項目時,將文件複製或編譯並複製到umbraco站點的測試/ dev服務器實例中。

一旦更改被批准,我們只需複製文件。

如果您需要在Umbraco實例之間同步內容,您可以使用Umbraco Pro(其中包含一個名爲Courier的組件,它恰好就是爲此目的),或備份您的實時數據庫並在需要時恢復到您的開發環境中甚至使用複製)。

我們主要嘗試避免在測試/開發環境中編輯內容,因爲這是將內容備份到活動網站會變得棘手的地方。但有時這是不可避免的。我們也嘗試並通過Umbraco界面避免編輯模板等。

對於您的最終問題「我應該將業務數據存儲在另一個數據庫中」的答案相當棘手,因爲它很大程度上取決於您將如何處理數據。如果內容最好存儲在CMS中,則將其存儲在CMS中,但如果它的關係數據非常不適合CMS,則將其分開存儲。

我們正在開展一個項目,其中數據存儲在外部數據庫中,我們已將應用程序直接集成到Umbraco後端。這是一項不平凡的任務(儘管只是通過用戶控件獲取一些數據很容易),您應該仔細考慮從外部存儲數據所需的工作量與CMS的內置功能以及必須播放的預算/時間用。

如果你想使用我們做的視覺工作室模板,那麼你可以從our website下載它。

+0

感謝您的一個很好的答案。你介意共享你爲部署文件構建腳本嗎? – 2009-09-28 11:23:34

+0

Hi Niels,我添加了一個鏈接到我們使用的visual studio模板。這包含一個exanple文件夾結構和示例發佈事件(您將需要編輯)。只需將其存儲在SVN中,並避免通過umbraco界面編輯代碼! – 2009-09-28 15:26:59

+2

謝謝,非常有趣的答案。有兩件事我不太確定......首先,你如何處理文檔類型?在遷移時,是否只是在生產服務器上手動重新創建它們?其次,只要上傳新的* .master文件而不添加節點到數據庫,Umbraco可以處理它嗎? – efdee 2010-02-24 16:36:29

2

我知道這已經得到了回答,但我只是想強調一個事實,即在內容和代碼同步方面取得了很多進展。例如 - uSyncuSiteBuilder都是很好看的軟件包,允許使用代碼控制CMS內容(如文檔類型和數據類型),因此可以控制版本。它們相當簡單易用,當然在使用這些之前請確保備份。媒體通常使用類似Export Media的備份方式進行備份,但通常將SVN中的媒體文件夾放在其默認位置不是一個好主意。而是將其放在自己的分支中,並將其作爲虛擬目錄存放在IIS中。這樣你的媒體獨立於代碼。

儘管有很多事情正在進行,但大多數現代CMS仍有很長的路要走,要有能夠與版本控制一起使用的解決方案。 Umbraco是一個很棒的CMS,並且擁有一個龐大的社區。