Как применить код первой миграции к базе данных в Azure? - PullRequest
0 голосов
/ 11 октября 2018

Я занимаюсь разработкой приложения ASP.NET Core API, которое я разместил в Azure.Разработка и развертывание прошли гладко, но у меня есть проблема, когда мне нужно применить миграцию.

При разработке я использую локальную базу данных SQL, а при развертывании полагаюсь на базу данных SQL Azure.Я предоставляю строку подключения через пользовательские секреты в процессе разработки, а для производства я использую хранилище ключей Azure для чтения строки подключения.И, конечно, есть переменная окружения ASPNETCORE_ENVIRONMENT, которую я сохраняю как Development, пока я разрабатываю и изменяю на Production после развертывания в Azure.Но проблема в том, что независимо от того, установлена ​​ли моя переменная ASPNETCORE_ENVIRONMENT на Development или Production, когда я создаю новую миграцию при разработке и выдаче dotnet ef update database из PowerShell, она просто обновляет мою локальную базу данных, а мояБаза данных Azure не изменена.Любые идеи, как я могу выполнить миграцию в мою базу данных, которая находится в Azure?

1 Ответ

0 голосов
/ 12 октября 2018
public void ConfigureServices(IServiceCollection services)
{            
     services.AddDbContext<MyContext>(
         options => options.UseSqlServer(
              Configuration.GetConnectionString("DefaultConnection")));
}

public void Configure(
     IApplicationBuilder app, IHostingEnvironment env, IServiceProvider serviceProvider)
{
     if (env.IsProduction())
         using (var context = serviceProvider.GetService<MyContext>())
             context.Database.Migrate();
}
...