我遇到了heroku pg:backups capture --app myapp
命令的问题。
Heroku CLI submits usage information back to Heroku. If you would like to disable this, set `skip_analytics: true` in /home/ubuntu/.heroku/config.json
heroku-cli: Updating to 4.99.0-e5f5ef4... done
heroku-cli: Updating CLI...heroku-cli: Updating to 5.11.8-f58f4fa... done
Starting backup of postgresql-spherical-5948... done
Use Ctrl-C at any time to stop monitoring progress; the backup will continue running.
Use heroku pg:backups:info to check progress.
Stop a running backup with heroku pg:backups:cancel.
Backing up DATABASE to b598... pending
Backing up DATABASE to b598... !
▸ MODULE_NOT_FOUND: Cannot find module 'bytes'
有没有人有类似的问题?在CircleCI上部署时启动此命令。
答案 0 :(得分:2)
昨天我开始遇到同样的问题,终于能够找到适合我的解决方案。
对于初学者来说,bytes
似乎是heroku-pg
的依赖关系,它是用于备份命令的Heroku CLI的一部分。似乎没有使用用于运行备份命令的heroku-cli版本来包含或安装依赖项。
我尝试使用CircleCI的“使用SSH重建”来解决问题,并在尝试备份命令时遇到类似的错误消息。在尝试使用npm重新安装heroku-cli时,我发现npm和node版本远远落后于heroku-cli想要的,所以也许这是问题的一部分?无论如何,使用npm重新安装只会产生更多破坏的Heroku CLI。
最后,我检查了构建环境,并将其设置为Ubuntu 12.04(Precise),这可能解释了npm / node包的过时方式。我将其更改为Ubuntu 14.04(Trusty)并将新提交推送到CircleCI(仅重建并不足以更改操作系统版本)并且能够成功运行已失败的备份命令!
解决方案:将CircleCI构建环境设置为Ubuntu 14.04