我在 Amazon Web Services 上运行一个 Ubuntu 实例,用于开发 Ruby on Rails 应用程序(用于测试运行本地 Rails 服务器),并将应用程序推送到 Heroku 进行部署。
直到昨天,当我想将我的开发数据库的内容推送到生产环境而不仅仅是应用程序本身时,这个设置对我来说一直没有问题。经过一些快速的谷歌搜索,这似乎很容易通过使用Taps
. 我不确定 Taps 是否预装了 Heroku Toolbelt(这是我一直在使用的),所以在遵循 Heroku 上的文档之后,我只运行了命令rake db:push
- 这返回了错误:
Taps Load Error: cannot load such file -- taps/operation
You may need to install or update the taps gem to use db commands.
On most systems this will be:
sudo gem install taps
很容易,对吧?错误的。运行后sudo gem install taps
(并观看安装运行没有任何问题),我重新运行命令rake db:push
只是发现自己面临相同的Taps Load Error
. 考虑到 Heroku 服务之前运行的轻松程度,这有点令人惊讶,事情一开始就没有顺利进行。
经过一番谷歌搜索后,我发现了两年前在 Heroku 的 github 页面上打开的一个问题,该页面直到最近 3 个月前才收到处理此问题的人的帖子,所以在阅读了一些推荐后,我决定尝试直接安装 heroku gem(即使它已被弃用,完全被 Toolbelt 取代),因为人们似乎得到了正确的结果。
我很犹豫,因为我不想让工具带和独立的 gem 相互竞争,所以我用谷歌搜索了如何卸载 heroku 工具带(这似乎没有一个好的 heroku 提供的解决方案 - 可能会打开一张票在heroku ...)上,但我按照此链接上的说明进行操作,有人应该为此打我,因为它只是以下命令:
rm -rf /usr/local/heroku
rm -rf /usr/bin/heroku
而且这些命令不考虑依赖关系等......我认为这部分(如果不是完全)是我问题的根源。此时,我运行了命令sudo gem install heroku
,得到了弃用警告,然后只是尝试运行命令heroku login
作为试金石测试,看看它是否安装正确,但我收到一个野兽Gem:LoadError
说
Could not find heroku (>= 0) amongst [... a bunch of gems ...]
所以,我决定我只是尝试回到开始而不担心事情,所以我卸载了简单的 heroku gem sudo gem uninstall heroku
,删除了相关的可执行文件,然后尝试按照上列出的命令重新安装 Toolbelt赫罗库:
wget -qO- https://toolbelt.heroku.com/install-ubuntu.sh | sh
在将一堆看起来很积极的输出打印到屏幕上之后,我认为一切都会好起来的,但是安装过程的最后一条消息是:
heroku-toolbelt is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 102 not upgraded.
这就是我所在的位置,我已经通过链接删除了明显重要的内容(请再打我一次),现在安装工具带并没有注意到它们丢失了,我在没有 heroku 的情况下被困住了或水龙头!(此外,令人不安的是,heroku 没有提供一种干净的方式来卸载工具带——这会使这样的事情变得不那么复杂)
非常感谢您的帮助。