1
我們有一些現有的應用程序將實體框架改造爲ORM。將實體框架與現有數據庫和空開發數據庫結合使用時的遷移
目的是爲了與遷移首先使用的代碼(從現有的數據庫),但我們有問題越來越遷移,以適應現有的數據庫場景:
- 測試/生產數據庫中已經有所有表與代碼匹配。沒有遷移表雖然。
- 一個空的localhost開發數據庫。
的目標
- 開發人員可以運行單元測試項目和數據庫將與所有表一起創造本身。
- 可以從遷移中生成一個腳本,該腳本將負責生成__migrationsHistory表以及生產所需的所有更改。
使用軟件包管理器可以使用默認遷移初始值設定項解決1。或者用ignore-changes開關解決2。但沒有成功,兩者同時工作。
我曾嘗試:
- 添加遷移InitialCreate;添加遷移MigrationHistoryTable -ignore-changes;
開發人員可以這樣做的想法是:update-database
進入test/prod時,可以使用update-database -Script -SourceMigration:$ InitialDatabase生成腳本。問題是腳本會發現initialCreate遷移丟失並嘗試重新添加現有表。來自MigrationHistoryTable的源遷移不會添加遷移歷史記錄表,如果缺失(它位於test/prod中)。 - 另一個嘗試是有兩個遷移項目,一個用於單元測試和另一個數據庫。雖然這變得有點麻煩。
還有其他建議嗎?
THX 金
您好Miniver,我正在尋找一個解決方案,EF可以幫助在這種情況下沒有手動腳本(或從數據庫自動生成)。如果沒有更好的建議,我會將其標記爲解決方案。 Thx Kim – 2014-09-23 06:43:29
實體框架遷移功能都與該__MigrationHistory表相關聯。另一種方法是對數據庫進行逆向工程並在本地使用Entity Framework Migrations,然後使用[Sql Server Data Tools]中的Schema Compare工具(http://www.microsoft.com/en-us/download/details。 aspx?id = 36843),或者如果我不理解__MigrationHistory表在生產中,您可以更改您的連接字符串以指向生產並執行更新數據庫。 – 2014-09-23 12:04:43
嗨Miniver,看起來你的第一個提議的解決方案是我們將要與之合作的解決方案。 Thx – 2014-09-25 09:02:41