Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I make entity-framework migrations use web.config transforms?

When you apply any commands like

  • 'update-database'
  • 'add-migration'

The EF uses the connection string in your main web.config

even if you have configured web.debug.config and web.release.config with xml transformation

This means, I have to go in and risk forgetting to change my true web.config back prior to a release.

like image 426
Doug Chamberlain Avatar asked Oct 02 '22 10:10

Doug Chamberlain


1 Answers

I think the only way to run web.config transformations locally is to use MSBuild with the following parameters, where [YourTransformationConfiguration] is the name of the configuration to use, e.g. Debug or Release:

msbuild PathToProject /T:Package /P:Configuration=[YourTransformationConfiguration] /P:AutoParameterizationWebConfigConnectionStrings=False

The output of which will be available at:

[ProjectFolder]\obj\[YourTransformationConfiguration]\Package\PackageTmp

From here you can run migrate.exe on your assembly, which is similar to running the Update-Database PowerShell script. If you used Nuget, this will be in the tools folder of the EntityFramework package. I had some trouble getting this up and running, but there's a useful answer Stack Overflow answer here:

Getting Migrate.exe to work

like image 101
Rob Bell Avatar answered Oct 10 '22 10:10

Rob Bell