我创建了一个Azure devops项目,从Github部署我的代码。我的项目是一个运行在 Docker 上的 Rails 应用。当我创建 Azure DevOps 项目时,它为我创建了 CICD 管道。部署成功了,但我想不通如何在我们部署时自动迁移数据库。我知道我可以手动进行,但我宁愿不要,因为我们可能会在部署时忘记。
我试着在 "Post Deployment Actions "中运行以下命令。
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.comen-usazureapp-servicecontainersquickstart-ruby。https:/medium.comparis-rbdeploying-your-rails-postgresql-app-on-microsoft-azure-180f8a9fab47。https:/docs.microsoft.comen-usazureapp-servicecontainerstutorial-ruby-postgres-app。
因此,不知道你是否曾经想通了这一点,但我只是不得不为我正在进行的迁移做这件事。根据我所发现的情况,最好的方法是在你的发布管道中设置一个阶段,就像这样。
基本上在哪里。
如果迁移任务成功运行,它应该退出0,允许你在最新的标记映像上运行你的应用服务,同时已经完成了正确的数据库更改。