の移行を展開しようとしている唯一のことはできません私たちがやってしまったことである:
ビルド面では、我々は冪等データベース作成スクリプトを生成します。
のApplicationContextはヨーヨーの名前です
dotnet ef migrations script --idempotent --output migrations.sql --context ApplicationContext
ur EFコンテキストおよびmigrations.sqlはSQLスクリプトファイル名です。
は、その後の展開側に我々は効果的にCLIが変更された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
を走る小さなPowerShellスクリプトを持っています。 https://docs.efproject.net/en/latest/miscellaneous/cli/dotnet.html – Ben
@Benそれは確かにあります。私はドットネットがインストールされていないことに言及することでその事実を暗示した。おそらく私が空のアプリケーションサービス自体であって私のマシンではないことを明確にしていないとはっきりしない。 – ManyRootsofAllEvil