使用CI部署数据库更改

时间:2013-04-29 12:33:43

标签: ef-migrations

我正在使用Entity Framework Code First Migrations在有人对数据模型进行更改时对本地数据库进行更改。当我想要合并从另一个开发人员检查的数据库更改时,我运行"update database"并进行模型更改,并调用Seed方法用最新数据填充数据库。

我刚刚在TeamCity中设置了CI环境,以便将代码更改推送到最新的构建环境,IAT环境和UAT环境。

问题是当我运行站点时,创建了一个空数据库但是没有运行Seed方法。我如何运行Seed方法以及在部署时使其进行任何新的数据库更改?

1 个答案:

答案 0 :(得分:1)

每次开发人员在自己的数据库上运行Update-Database时,应该运行种子方法。对于共享服务器,您可以在命令行上针对每个服务器环境运行migrate.exe。

当您通过NuGet下载EF时,此可执行文件在Tools子文件夹中可用。如果需要,可以通过将其与应用程序一起部署来自动运行。然后,在CI配置中设置一个命令步骤,以使用适当的标志调用migrate.exe。

您可以在MSDN上找到有关migrate.exe的更多信息:

http://msdn.microsoft.com/en-us/data/jj618307.aspx

e.g。

  

迁移到最新的迁移

Migrate.exe MyMvcApplication.dll /startupConfigurationFile="..\web.config"
     

运行migrate.exe时,唯一的必需参数是程序集,   哪个是包含您正在尝试的迁移的程序集   要运行,但如果不这样做,它将使用所有基于约定的设置   指定配置文件。

祝你好运!