关于Azure DevOps:Azure DevOps-自动运行Rails迁移

Azure DevOps - Automatically run rails migrations

我创建了一个Azure devops项目,该项目从Github部署了我的代码。我的项目是在Docker上运行的Rails应用。当我创建Azure DevOps项目时,它将为我创建CI / CD管道。部署可行,但是我无法弄清楚在部署时如何自动迁移数据库。我知道我可以手动完成此操作,但是我不愿意这样做,因为我们在部署时可能会忘记。

我试图在"部署后的操作"中运行以下命令

  • rake db:migrate
  • bundle exec rake db:migrate
  • rbenv exec bundle exec rake db:migrate
  • docker-compose run web rake db:migrate

我还生成了自己的kuduscript(使用kuduscript)以添加要迁移的行,但没有用。我不知道这是因为它没有读取我的部署脚本还是该行不起作用。

我错过了什么吗?我是否应该尝试弄清楚如何通过Docker进行迁移?我查看了所有这些链接,但它们均手动运行迁移。

https://docs.microsoft.com/zh-CN/azure/app-service/containers/quickstart-ruby
https://medium.com/paris-rb/deploying-your-rails-postgresql-app-on-microsoft-azure-180f8a9fab47
https://docs.microsoft.com/zh-cn/azure/app-service/containers/tutorial-ruby-postgres-app


所以不确定您是否能解决这个问题,但是我只需要对正在进行的迁移进行此操作。根据我所发现的事情做事的最好方法是在发布管道中设置一个阶段,如下所示:

阶段设置

基本上在哪里:

  • 您的服务连接登录到容器注册表
  • 拉出您刚刚构建的映像并将其推送到注册表
  • 然后使用docker run命令使用所有必需的环境变量以及正确运行它所需的其他任何东西来运行映像。
  • 然后,您可以根据需要使用其他任务来运行docker exec软件包exec rake db:migrate

如果迁移任务成功运行,则应退出0,允许您在已完成正确数据库更改的情况下,在最新的标记图像上运行应用程序服务。