2013-12-23 28 views
1

我剛剛開始在幾個不同的團隊場景中測試遷移,以確保遷移將按照預期使用git/multiple users/multiple branches。但我已經遇到了一個問題。在分支1上,我添加了初始遷移(在一個包含165個實體的現有項目上),在Up/Down中刪除代碼(僅使用模型快照),然後更新數據庫(創建__MigrationHistory表)。我將它合併到分支2(完全相同的模型 - 分支1的確切副本),運行update-database與我最近合併的遷移,它說無法更新數據庫以匹配當前模型,因爲有未決的更改。沒有待處理的更改,兩個模型完全相同。有什麼我在這裏失蹤?我認爲一旦遷移失敗(合併,來自不同用戶的模型更改),我應該只會遇到這個問題。dotConnect Oracle - 遷移 - 兩個相同分支的初始遷移說不同的模型

那麼,爲什麼我必須在分支1和分支2上執行add-migration初始化?他們合併,完全一樣。

注:EF 5(技術4.4)與.NET 4.0。 DevArt dotConnect for Oracle v 8.1.55.0

編輯:我已閱讀this後,但我不在不同的平臺上,我在同一臺計算機上 - 只是不同的分支機構。

+0

如果'附加migration'在合併後的分支2上,是否有任何東西添加到Up()方法中?代碼/資源文件中的元數據是否有所不同? –

+0

其實我只是這麼做的,分支1中的散列有85656個字符 - 分支2有85660個字符。 – Jack

+0

有時,在使用EF遷移時,它僅僅是一個黑匣子。如果Up()方法中沒有添加任何內容,並且只有元數據不同,我不知道該怎麼做。我一直在考慮編寫一個可以從代碼反序列化元數據的工具,以及從數據庫加載元數據並進行比較。如果我只有更多的時間... –

回答

1

我想到了,在我從EDMX移動到dotConnect代碼優先+遷移的初始測試中,我將模式添加到了_Mapping文件中以用於我的流暢映射。我不得不刪除這個模式。例如:

相反的:

this.ToTable("ADDRESS", "SCHEMA"); 

我不得不使用:

this.ToTable("ADDRESS"); 

而且我在OnModelCreating使用這些選項:

var config = Devart.Data.Oracle.Entity.Configuration.OracleEntityProviderConfig.Instance; 
config.Workarounds.IgnoreDboSchemaName = true; 
config.Workarounds.IgnoreSchemaName = true;