dev*_*tal 63 .net entity-framework ef-code-first ef-migrations
我只是考虑将EF迁移用于我们的项目,特别是在发布之间的生产中执行模式更改.
我已经看到提到有一个API可以在运行时使用DbMigration
该类执行这些迁移,但我找不到任何具体的示例.
理想情况下,我希望DbMigration
每个数据库更改一个文件,并在应用程序启动时自动应用这些更改从当前版本到最新版本.
WDR*_*ust 76
您可以使用数据库初始化程序在启动时实现向最新版本的迁移(或者更好,dbinitializer将在第一次数据库访问时启动)MigrateDatabaseToLatestVersion
,您可以使用它:
Database.SetInitializer<ObjectContext>(
new MigrateDatabaseToLatestVersion<ObjectContext, Configuration>());
Run Code Online (Sandbox Code Playgroud)
关于每次迁移只有一个文件,如果启用自动迁移,您将在Migrations
项目根目录中的文件夹中(默认情况下)找到它们.
相关信息,以及示例,请访问:http://weblogs.asp.net/fredriknormen/archive/2012/02/15/using-entity-framework-4-3-database-migration-for-any-project.aspx
mac*_*kie 48
这也有效:
var configuration = new MyDbContextConfiguration();
configuration.TargetDatabase = new DbConnectionInfo(
database.ConnectionString, database.ProviderName);
var migrator = new DbMigrator(configuration);
migrator.Update();
Run Code Online (Sandbox Code Playgroud)
你也可以打电话:
migrator.GetPendingMigrations();
Run Code Online (Sandbox Code Playgroud)
获取需要应用的迁移列表.
由于您没有指定您正在使用的Visual Studio版本或数据库,因此我将在此处添加一个答案,说明在VS2015中使用Microsoft的SQL Server,现在使用"发布"工具非常容易.
您不需要为您所说的API烦恼.只需在本地完成工作,更改模型,应用迁移等,然后当您想要推出发布/测试服务器时,使用发布工具.
您可以选择在第一次启动应用程序时将您在本地进行的任何迁移应用于远程服务器.
完成所有迁移并在本地完成所有操作后(在Dev env中可以推荐)然后发布(右键单击项目,单击"发布..."勾选"执行代码优先迁移(在应用程序启动时运行)"复选框"设置"选项卡然后它将在第一次访问应用程序时应用迁移(因此第一次会有短暂的延迟).
指南:https: //msdn.microsoft.com/en-us/library/dd465337(v = vs.110).aspx
我学到了所有这些,因为我必须这样做到Windows 2012服务器:http: //www.sherweb.com/blog/how-to-install-webdeploy-on-windows-server-2012/
祝好运!