我一直在研究如何在EF 4.3.1迁移中产生降级,我发现的只是脚本(例如EF 4.3 Migration - how to produce a downgrade script?)
要升级用户的生产数据库,我调用方法MigrateDatabaseToLatestVersion<TContext, TMigrationsConfiguration>
在应用程序启动时,所以我确保所有用户在安装我的应用程序的新版本后具有相同的数据库架构。配置迁移后,我不需要在客户端运行任何脚本。
如果我想降级到其他版本会怎样?很明显,这个方法只会向上移动直到它到达最新的迁移...有类似MigrateDatabaseToVersion<TContext, TMigrationsConfiguration, DbMigration>
的东西,其中DbMigration对象是目标迁移吗?
如果我想降级生产数据库,是否可以避免运行SQL脚本?
谢谢你们!
答案 0 :(得分:2)
您可以使用EF附带的migrate.exe工具进行特定迁移。
Migrate.exe MyApp.exe /startupConfigurationFile=”MyApp.exe.config” /targetMigration=”myTargetMigration”
可以在http://msdn.microsoft.com/en-us/data/jj618307.aspx
找到文档编辑:如何使用连接字符串
Migrate.exe whereYourMigrationsAre.dll /connectionString=”Data Source=localhost;Initial Catalog=blah;whatever else you want to set” /connectionProviderName=”System.Data.SqlClient”