2010-03-06 72 views
0

我正在啓動一個網站項目。我的計劃是首先以一種基本的形式推出該網站,然後在此過程中添加網站功能。亞音速增量式開發

我對我的DAL使用Subsonic 3,我期待數據庫隨着網站的發展將經歷多個版本。這意味着我需要某種版本和遷移工具。據我所知,Subsonic已經建立了遷移的可能性,但在我的情況下,我很難掌握如何使用這些工具。

首先是SimpleRepository模型,在我開發我的網站時,Subsonic「自動地」處理遷移。我可以看到這是如何在我的開發機器上工作的,但我不知道如何處理這個部署。

  • Subsonic在適當的方法被調用時在我的現場網站上運行必要的遷移?

  • 當使用Simplerepository模型時,有什麼方法可以在站點脫機的情況下強制執行網站上的所有必要遷移? (否則我會期望隨機用戶體驗嚴重的性能下降,因爲遷移例程踢了)

  • 我會更好的使用ActiveRecord模型,然後使用Subsonic.Schema.Migrator處理遷移嗎? (我懷疑是這樣)

  • 你知道任何好的資源解釋如何處理這種情況與移民嗎? (我讀doc,但我不能拼湊在一起我將如何使用這個在實踐中)

感謝收聽/答覆。

問候
加斯帕豪格

回答

1

我會建議不要針對活動網站運行遷移。 SubSonic的遷移確實使開發變得更簡單,不應該用於實時環境。說實話,即使使用SubSonic.Schema.Migrator,你仍然會遇到重構數據庫是一個難以置信的難題的事實。例如,使用management studio重命名錶中的列是微不足道的,但在後臺發生的事情涉及創建一個全新的表並在重命名新表之前遷移所有約束,數據等。 我已經找到了對付這種情況的最有效的方法是:

  1. 腳本的所有數據庫更改,你讓他們在你的開發環境(SQL Server Management Studio中會爲你做到這一點),這些腳本添加到您的源代碼管理。
  2. 作爲部署的一部分(顯然是先備份)運行遷移腳本,然後在成功時部署更新的應用程序。

無論您使用ActiveRecord還是SimpleRepository,都要考慮是否需要ActiveRecord的額外功能/複雜性。

希望這有助於

0

我會使用ActiveRecord易於使用和任何改變你只需運行TT文件,那麼您需要構建或發佈slution,做???? SVN會保留你的構建階段的多個版本,所以如果你製作了它的話,你只需要退回一個修訂版。

+0

我理解等式的一部分,我後是什麼,是來處理數據庫架構的遷移的最佳途徑。如果我在開發計算機上更改數據庫佈局,然後運行tt-files,我仍然需要更新部署網站上的數據庫模式,並且我想了解如何使用Subsonic 3中的Migrator類來處理這個過程。 – Hauge 2010-03-08 18:26:43

+0

在這種情況下,爲什麼你沒有亞音速作爲一個單獨的項目,那麼如果事情發生變化,你建立和部署一個新的DLL – davethecoder 2010-03-09 08:55:06

+0

我看不到這將如何幫助我在部署的網站上遷移數據庫模式。 – Hauge 2010-03-13 16:41:54