Entity framework Azure应用程序服务上的EF核心(1.0.0)迁移

Entity framework Azure应用程序服务上的EF核心(1.0.0)迁移,entity-framework,azure,Entity Framework,Azure,我们在Azure应用程序服务中部署了一个web应用程序(Net Core 1.0.0-preview2-003121),我们正在努力部署迁移 在RC1/2中,可以使用一个似乎自动存在的ef.cmd文件进行迁移,也就是说,我们可以使用这个文件来运行 dnx ef database update 但这已经过去了 dotnet ef未安装在Azure应用程序服务中,因此这不是一个选项 有没有不涉及从代码运行迁移/从VisualStudio部署迁移的想法 我们正试图构建一个连续的部署管道,我宁愿避免

我们在Azure应用程序服务中部署了一个web应用程序(Net Core 1.0.0-preview2-003121),我们正在努力部署迁移

在RC1/2中,可以使用一个似乎自动存在的ef.cmd文件进行迁移,也就是说,我们可以使用这个文件来运行

dnx ef database update 
但这已经过去了

dotnet ef
未安装在Azure应用程序服务中,因此这不是一个选项

有没有不涉及从代码运行迁移/从VisualStudio部署迁移的想法

我们正试图构建一个连续的部署管道,我宁愿避免从代码中强制部署迁移

我的google fu显然让我失望了,因为我一生都找不到任何东西,而且我也不是唯一一个试图在服务器上部署迁移的人


TIA

我们最终做的是:

在构建端,我们生成一个幂等数据库创建脚本:

dotnet ef migrations script --idempotent --output migrations.sql  --context  ApplicationContext
其中ApplicationContext是EF上下文的名称,migrations.sql是sql脚本文件名

然后在部署方面,我们有一个小的powershell脚本,可以有效地运行migrations.sql脚本

param(
[Parameter(Mandatory)]
[string]$server,
[Parameter(Mandatory)]
[string]$dbname,
[Parameter(Mandatory)]
[string]$dbadmin,
[Parameter(Mandatory)]
[string]$dbpassword,
[Parameter(Mandatory)]
[string]$migrationPath
)

function Deploy-Migrations ($migrationPath,$DBSettings)
{
   #Setting up database connection
   $connection = New-Object System.Data.SqlClient.SqlConnection
   $connection.ConnectionString = [string]::Format("Data Source=tcp:{0}.database.windows.net,1433;Initial Catalog={1};User Id={2}@{0};Password={3};MultipleActiveResultSets=True", $DBsettings['sqlServerName'], $DBsettings['databasename'],$DBsettings['adminAccount'], $DBsettings['adminPassword']) 

    try
    {
        $connection.Open();

         $SqlCmd = New-Object System.Data.SqlClient.SqlCommand
         $SqlCmd.Connection = $connection
         $query = Get-Content $migrationPath
         $sqlCmd.CommandText = $query.Replace("GO","") # This is required to prevent "syntax" complaints
         $sqlCmd.ExecuteNonQuery()

         Write-Host "Migration Deployed" 
    }
    Catch
    {

        Write-Error "oops ... PAnic ... $($_.Exception.Message) on $($_.Exception.ItemName)"
        break
    }
    Finally
    {
        $connection.Close()
    }  
 }

$DBSettings = @{"sqlServerName"=$server; "databasename"=$dbname;    "adminAccount"=$dbadmin; "adminPassword"=$dbpassword }

Deploy-Migrations $migrationPath $DBSettings

CLI已更改@本:的确如此。我在帖子中提到dotnetef没有安装,可能不清楚我指的是azure应用程序服务本身,而不是我的machineThanks。有时使用ASP.NET Core让我觉得我是世界上唯一一个使用过它的人。O_O SQL脚本它是。。。。