交换Azure Web App时的代码优先数据库迁移

时间:2018-06-06 13:10:47

标签: asp.net-mvc entity-framework azure azure-web-sites

设定:

  • 将插槽设置​​为DEV数据库的开发插槽
  • 将广告位设置为PRODUCTION数据库的制作广告位。

我在发布配置文件上启用了“执行代码优先迁移”并发布到DEV插槽。 DEV数据库完美更新。

但是当我将我的插槽换成PROD时,PROD数据库上没有执行Code First Migration。

我们有多个客户需要此设置。我希望开发人员将新版本设置到DEV插槽中,我希望我的项目经理在他们认为客户已准备好接收新版本时进行SWAP,这样他们就可以立即演示新版本。我不希望他们再做更多的其他行动。

现在我做了一个修复,让他们浏览应用程序中的URL,该URL将通过以下代码执行任何缺失的更新:

import healpy as hp
import numpy as np
import matplotlib.pyplot as plt

# Set the number of sources and the coordinates for the input
nsources = int(1.e4)
nside = 2
npix = hp.nside2npix(nside)

# Coordinates and the density field f
thetas = np.random.random(nsources) * np.pi
phis = np.random.random(nsources) * np.pi * 2.
fs = np.random.randn(nsources)

# Go from HEALPix coordinates to indices
indices = hp.ang2pix(nside, thetas, phis)

# Initate the map and fill it with the values
hpxmap = np.zeros(npix, dtype=np.float)
hpxmap[indices] += fs[indices]

# Inspect the map
hp.mollview(hpxmap)

交换插槽时没有触发迁移是正常的吗?

1 个答案:

答案 0 :(得分:0)

您是否将连接字符串配置为特定于插槽的设置?如果是这样,您的工作进程应该在swap上重启。您只需要确保迁移在启动时运行。显然,发布配置文件所做的配置更改导致迁移在启动时运行,但不会传播到生产槽中。

请参阅ASP.NET博客上的这篇文章,了解选项:EF Code First Migrations Deployment to an Azure Cloud Service