gpt4 book ai didi

entity-framework - Azure 应用服务上的 EF Core (1.0.0) 迁移

转载 作者:行者123 更新时间:2023-12-04 21:08:48 25 4
gpt4 key购买 nike

我们有一个 Web 应用程序 (Net Core 1.0.0-preview2-003121) 部署到 Azure 应用服务,但我们正在努力部署迁移。

在 RC1/2 中,可以使用 ef.cmd 文件进行迁移,该文件似乎自动存在,即我们可以使用该文件来运行

dnx ef database update 

但这已经消失了。

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

有什么不涉及从代码运行迁移/从 Visual Studio 部署迁移的想法吗?

我们正在尝试构建一个持续部署管道,我宁愿避免强制从代码部署迁移。

我的 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

关于entity-framework - Azure 应用服务上的 EF Core (1.0.0) 迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39625615/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com