2016-12-06 56 views
2

我的項目曾經完全適用於.NET Core 1.0,但移植到1.1會讓我頭痛!我一直在使用Microsoft Azure進行發佈,並沒有太多問題。ASP.NET核心項目 - 發佈不顯示「數據庫遷移」選項

我想我只是在數據庫遷移。我一直在使用遷移,但是當我發佈時,我沒有選擇'在發佈上應用此遷移'。

我有第二個項目工作得很好。當我打開發布屏幕時,圖標旋轉說'發現數據上下文...',然後更改爲'實體框架遷移'。

但是對於我的生活,我無法得到它與我的主要項目工作!

什麼可以防止'Entity Framework Migrations'在發佈時出現?

我做附加遷移初始化更新數據庫和那些工作完全在本地,而不是試圖發佈

我ApplicationDbContext.cs時只是默認,並與工作其他項目。

public class ApplicationDbContext : IdentityDbContext<ApplicationUser> 
{ 
    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options){ 
    } 

DOTNET --info

.NET Command Line Tools (1.0.0-preview2-1-003177) 

當我在本地運行,我可以刪除SQL數據庫和遷移把它回來時,我開始。所以我知道遷移工作正常。我無法在發佈期間顯示選項。

謝謝!

回答

1

我正好碰到這個問題,「情迷數據上下文...」微調跑了一下,然後我沒有得到'Entity Framework Migrations'選項。

什麼固定它,我被重建如下發布配置:

從發佈屏幕按創建新的配置文件鏈接: Publish to Azure screen

,然後更改到選擇現有選項:

Publish Select Existing

然後拿起您現有的應用程序服務

enter image description here

一旦我做到了,在「實體框架遷移」部分出現了預期中的發佈工具的設置。

有關信息,重新創建發佈文件似乎沒有對.pubmxl文件做任何重大更改。唯一的變化是resourcegroups<ResourceId>設置中更改爲resourceGroups,而<PublishFramework />更改爲<PublishFramework></PublishFramework>。這兩者似乎都不是問題的原因。

2

我遇到了同樣的問題。不幸的是,我沒有回答還有

我沒有一個明確的答案,但我知道它是vs2017 RC一個已知的問題現在:https://github.com/aspnet/Tooling/blob/master/known-issues-vs2017.md#migrations-not-applied-during-publish

它說手動應用這些遷移,但因爲我使用的是新的項目類型,我無法訪問dotnet ef命令行工具。

如果你有可用於你的項目的命令行工具(你仍然使用project.json等),那麼我認爲有一個-script選項,它允許你輸出一個用於你的遷移的腳本,你可以然後在服務器上手動運行。

我已經提高了對efcore github上這裏的一個問題:https://github.com/aspnet/EntityFramework/issues/7276

+0

我最終只需創建一個新項目,並將所有代碼複製到它。感謝您的回覆和更新! –

+0

沒問題。 我通過使用包管理器控制檯中的'Script-Migration'工具來運行我的工作,使用'-Idempotent'標誌生成所有我的遷移的SQL腳本,然後在Azure上對我的服務器運行該sql。 – Banashek