heroku pg:backups中的MODULE_NOT_FOUND

时间:2017-06-13 17:56:25

标签: heroku deployment

我遇到了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上部署时启动此命令。

1 个答案:

答案 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