簡體   English   中英

無法使用migrate.exe運行代碼首次遷移

[英]Can't run code first migrations using migrate.exe

我正在嘗試更新測試系統上的數據庫。 當我在visual studio中運行update-database ,事情按預期工作。

當我部署然后嘗試在測試機器上運行時:

Migrate.exe CodeFirst.dll /startupConfigurationFile="..\web.config"

我明白了:

在應用程序配置文件中找不到名為xxx的連接字符串

...即使web.config中有一個帶有該名稱的連接字符串。 只有一個.config文件,我正在運行的dll沒有配置文件

我試圖手動聲明我的連接字符串:

Migrate.exe CodeFirst.dll /connectionString="Data Source=192.168...;Initial Catalog=Database;" /connectionProviderName="System.Data.SqlClient"

但由於某種原因,它仍然給出了相同的錯誤...它是否忽略了我傳入的連接字符串並試圖再次尋找一個? 為什么會這樣做?

但這給了我一個非常奇怪的錯誤:

\n

遷移配置類型“Source = 192.168 ...”在程序集CodeFirst.dll中找不到我想知道它是否與空格有關,所以我嘗試將'數據源'更改為'服務器'並將初始目錄更改為'數據庫'但這沒有幫助。

編輯:固定引號

我已經看過類似的問題,但他們都是關於在視覺工作室內運行的,我在嘗試這樣做時沒有任何問題。 關於我能做什么的更多想法? 有沒有人得到這些選項中的任何一個?

最后讓它與Entity framework 6.1.3一起使用。 我不確定該版本是否真的重要,但我們最終下載了代碼並對其進行了調試。

真正有所作為的是在所需的兩條路徑中使用完整路徑...希望可以幫助某人!

migrate CodeFirst.dll Configuration /startUpDirectory:"C:\src\app\CodeFirst\bin\Debug" /startUpConfigurationFile:"C:\src\app\CodeFirst\bin\CodeFirst.dll.config" 

我聯系了EF團隊,顯然EF7會更好: https//github.com/aspnet/EntityFramework/issues/2974

剛開始使用此工具的人可能會發現這個PowerShell腳本很有用 - 它包含一些常見用例的默認值:

Param(
    [string]$DbConnectionString,
    [string]$StartUpDirectory,
    [string]$DataModelDllName,
    [string]$StartUpConfigurationFile = "$StartUpDirectory\$DataModelDllName.config",
    [string]$ConfigurationClassName = "Configuration",
    [string]$ConnectionProviderName = "System.Data.SqlClient",
    [string]$MigrateToolPath = "$PSScriptRoot\migrate.exe"
)

& $MigrateToolPath $DataModelDllName $ConfigurationClassName /startUpConfigurationFile=$StartUpConfigurationFile /connectionString=$DbConnectionString /connectionProviderName=$ConnectionProviderName  /startUpDirectory=$StartUpDirectory

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM