Automatically execute migrations when publishing ASP.NET Core app

asp.net-core ef-migrations entity-framework-core webdeploy webdeploy-3.5

Question

Question

Is there any ways that I can automatically execute the migration code (EF 7) when publishing my ASP 5 application to IIS using Web Deploy?

I Tried

  • in the project.json, I added this code in the scripts:

    "scripts" : { "prepublish": ["dnx ef database update", "other commands..."], "postpublish": ["dnx ef database update"] }

none worked for me.

Additional Info

I followed the instructions on this link to deploy my ASP 5 RC-1 web application to IIS using web deploy.

After doing so in the publish settings I have:

ASP 5 RC 1 publish to IIS using Web Deploy

Using web deploy in ASP 4 applications I have additional database options:

ASP 4 publish to IIS using Web Deploy

1
8
7/13/2016 10:36:10 PM

Accepted Answer

So I added the option -environment to my ef database command. Now it works:

"postpublish": ["dnx ef database update -e Staging"]

I have four different appsettings.json which different connection string for each environment. Just needed to indicate the environment for the command to work.

1
2/16/2016 9:06:07 PM

Popular Answer

Use context.Database.Migrate()

You can call this from your Startup class:

using (var context = new MyContext(...))
{
    context.Database.Migrate();
}

It will migrate your database to the latest version on application startup. But be careful doing it, maybe comment out this code and uncommend only when you want to run your migrations.



Related Questions





Related

Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow
Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow