Я запускаю экземпляр Ubuntu в Amazon Web Services для разработки приложения Ruby on Rails (которое используется для тестирования работы локального сервера rails) и отправляю приложение в Heroku для развертывания.
Эта установка работала у меня без проблем до вчерашнего дня, когда я захотел передать содержимое моей базы данных разработки в производство, а не только само приложение. После небольшого поиска в Google это оказалось легко сделать с помощью 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 (даже несмотря на то, что он устарел и полностью заменен на Toolbelt), поскольку люди, похоже, получали правильные результаты.
Я колебался, потому что не хотел, чтобы пояс инструментов и автономный драгоценный камень конкурировали друг с другом, поэтому я погуглил, как удалить пояс инструментов 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, который был простым 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 не предоставляет чистого способа удаления пояса инструментов — это сделало бы что-то подобное гораздо менее сложным)
Помощь приветствуется.