在Azure DevOps中,我用来更新Server数据库的方法是使用实体框架核心(),使用两个任务:
问题是,既然我使用的是PostgreSQL数据库,我就找不到一种简单而干净的方法来以同样的方式更新数据库。我已经看到,MySQL的另一项任务与Server执行的发布管道任务完全一样,但对于PostgreSQL则没有。
因此,我认为我基本上可以在管道中执行dotnet ef update database (设置了适当的选项),但我想知道是否有一种方法可以像以前那样顺利地更新数据库。
发布于 2020-06-16 11:59:03
我终于要修好它了。
我找到了两种解决办法来解决这个问题。

这将是YAML (如果您想在发布管道外使用它):
- task: DotNetCoreCLI@2
displayName: 'dotnet custom'
inputs:
command: custom
custom: tool
arguments: 'install --global dotnet-ef --version 3.1.4 --ignore-failed-sources'dotnet ef database update -c <DBCONTEXT> -p <PROJECT> -s <STARTUP_PROJECT> -v --no-build您只需添加标志-c,以防您的项目中有多个上下文(有时另一个DbContexts可能来自一些块包)。
注意,我添加了标志--没有构建,因为我已经在构建管道中构建了项目,以遵循良好的实践。
但是,如果我必须使用Server或MySQL,我将使用迁移脚本,因为这个过程要容易得多(您只需要生成一个.sql脚本,然后它是部署迁移所需的唯一文件)。
https://stackoverflow.com/questions/62387662
复制相似问题