我不認爲這有一個簡單的食譜答案,因爲這很大程度上取決於你的環境。無論你想出什麼,我都強烈推薦一種基於腳本的方法,其中部署腳本本身就是源代碼管理。這些腳本還將允許與構建解決方案更好地集成(見下文)。
在您的生產環境中運行的最簡單的這種腳本只是從源代碼控制獲取最新(或獲取特定版本)的命令。
下一個挑戰是數據庫部署。我最喜歡中小型項目的解決方案是在每個數據庫中維護一個模式版本表,並在源代碼管理中包含所有DDL和數據更新腳本(包括它們在壓縮存檔中使用的數據源)。腳本連續編號(開始000001 ...,000002 ...等),我運行的部署腳本首先備份現有數據庫,然後從模式版本表獲取最後一次運行數據庫腳本,然後運行以正確順序在源代碼管理中找到的任何新數據庫腳本,相應地更新模式版本表。
這種方法允許我很快從頭開始重建數據庫。
一起兩種方法使其能夠快速部署您的代碼庫,以幾種不同的分級機,你的QA環境,β等
對於只是一點點比較複雜的情況,你應該運行一個持續集成構建服務器,就像Kieveli et。人。建議,它基本上「定期」重建您的整個部署,因此包含腳本以完成您要在上面「手動」運行的內容。
通過爲每個數據庫腳本創建回滾腳本,還可以使數據庫部署更復雜。然後你應該編寫一個小控制器應用程序來處理這些應用有幾種OSS解決方案適用於這類東西,其中一種可能適合您的需求。
,但以後就不會再你的數據庫自動部署到生產環境;-)
哈德森是真棒。 – stimms 2009-06-15 00:25:28