对于 C# 项目,我有从 TFS 运行到 Azure 的持续交付,这很好。
我现在想让持续交付与我的 SQL 数据库一起工作。
目前我有一个保存数据库的 SQL 2008 R2 数据库。
确保我可以使用来自 TFS 的持续交付以包含数据库更改的最佳选择是什么?
重要的因素是它需要在签入 TFS 时自动化。
对于 C# 项目,我有从 TFS 运行到 Azure 的持续交付,这很好。
我现在想让持续交付与我的 SQL 数据库一起工作。
目前我有一个保存数据库的 SQL 2008 R2 数据库。
确保我可以使用来自 TFS 的持续交付以包含数据库更改的最佳选择是什么?
重要的因素是它需要在签入 TFS 时自动化。
我刚刚遇到这个问题,发现很难获得指导,但已经在我的应用程序中管理它,我对 MVC 和 Azure 很陌生,所以如果这不是太详细,请原谅。
这就是我所做的;
在我的 Global.asax.cs 中Application_start()
,我添加了:
Database.SetInitializer(new MigrateDatabaseToLatestVersion<ApplicationDbContext, Configuration>());
ApplicationDbContext
您的上下文的名称在哪里。请记住添加对您的Models
类和Migrations
类的引用。
当你这样做时,我认为迁移是在第一次调用上下文时在你的数据库上运行的,它不会删除并重新创建你的数据库。
我遇到的一个问题是我收到一条错误消息,指出数据库中已经存在对象,因为__MigrarionHistory
表中没有任何迁移数据,因此它试图从头开始创建数据库。幸运的是,我的应用程序还没有上线,所以我可以删除表并提交到 TFS,它重新创建了所有内容并包含了所有内容,__MigrationHistory
因此,任何新的代码首次迁移都会在第一次命中时运行,并且数据库会更新。如果这个数据库是实时的,我不知道该怎么办!
希望有帮助