Heroku db: pull 'db: pull не является командой героя'

Я получаю это сообщение, хотя я использовал heroku db: тянуть миллион раз. По какой-то причине он больше не работает, хотя я даже не коснулся моего кода. Любые идеи?

Полное сообщение об ошибке

db:pull не является командой heroku. Возможно, вы имели в виду pg:pull См. heroku help для списка доступных команд.

Ответ 1

В настоящее время мы все еще можем использовать героику-наследие-краны до тех пор, пока боги кранов не решат отказаться от серверов кранов.

Запуск: heroku plugins:install https://github.com/heroku/heroku-legacy-taps.git

Затем продолжите рабочий процесс db:push и db:pull, как обычно. (спасибо GantMan за подсказку)

Ответ 2

Поскольку серверы кранов будут выведены из эксплуатации в какой-то будущей точке, плагин, вероятно, не лучший долгосрочный вариант. Но, конечно, вы можете запустить свой собственный сервер отказов.

Действия

Шаг 1: Запустите сервер кранов

taps server `heroku config:get DATABASE_URL` db db

Шаг 2. Запустите клиент taps

В другой оболочке:

taps pull sqlite://db/development.sqlite3 http://db:[email protected]:5000

Шаг 3: Завершите работу сервера кранов

Как только импорт будет выполнен, вы можете закрыть сервер с помощью обычной комбинации клавиш Ctrl-C.

Примечания

@wijet в последнее время разветвлено и включил некоторые из наиболее важных патчей. Он назвал свой драгоценный камень "кранами-кранами", если вы ищете легкую установку из коробки.

Ответ 3

Это все еще возможно. Просто запустите

heroku plugins:install https://github.com/heroku/heroku-taps.git

Вы сможете делать свой классический материал, это просто плагин.

Если у вас все еще есть проблемы, вам может потребоваться установить некоторые другие драгоценные камни. Вы также можете запустить следующее:

gem install heroku taps sequel

Надеюсь, это поможет! Мне нравится db: push/pull, как и весь остальной мир, и мне грустно видеть, как это происходит.

Если у вас все еще есть проблемы, посмотрите на это: https://github.com/heroku/heroku-legacy-taps

GOODLUCK!

Ответ 4

Я использовал db:pull, и он работал нормально. После того, как он был удален, я попробовал pg:pull, но он просто не работает для меня.

Я нашел другое решение. Если ваша локальная база данных - PostgreSQL, и у вас включен аддон pgbackups, это последовательность команд, которые я использую для копирования удаленного БД на локальный компьютер:

$ wget "`heroku pgbackups:url --app app-name`" -O backup.dump
$ # Create the local database first, if it not created yet. Then:
$ pg_restore -d database-name -c backup.dump -U database-user-name -O --no-acl -h localhost

Замените имя приложения, имя базы данных и имя пользователя базы данных своей собственной информацией.

Вероятно, вы захотите попросить герою сделать резервную копию непосредственно перед тем, как вы потянете свои данные:

heroku pgbackups:capture --expire

в противном случае вы получаете данные из всякой собственной резервной копии.

Ответ 5

Это сообщение об ошибке, которое я получил при попытке db:pull.

db:pull не является командой heroku.
 Возможно, вы имели в виду pg:pull.
 См. heroku help для списка доступных команд.

Вы пробовали pg:pull?

Использование: heroku pg:pull <REMOTE_SOURCE_DATABASE> <LOCAL_TARGET_DATABASE>

Ответ 6

Похоже, db: pull и т.д. устаревают и перемещаются

См. здесь https://github.com/heroku/heroku-pg-extras/issues/42

Я обнаружил, что способность db: push и pull перемещать одиночные, например, статические таблицы данных вверх и вниз от dev до стадии постановки на производство, неоценима - теперь похоже, что вам нужно создать новую пустую базу данных и сделать всю дамп в него, а затем запустить команды pg для перемещения отдельной таблицы

Ответ 7

Я нашел здесь свой ответ, но я поставил его в грабли. Я думаю, что это разумный способ справиться с этой ситуацией. Если вы используете локальный экземпляр postgres для работы со своими postgres на Heroku, вы можете попробовать что-то вроде этого:

# lib/tasks/database.rake

namespace :database do
  desc "Gets the database from heroku and restores it to development"
  task :pull => :environment do
    dumpfile =  'tmp/latest.dump'
    db_config = Rails.application.config.database_configuration[Rails.env]
    File.delete(dumpfile) if File.exist?(dumpfile)
    `heroku pgbackups:capture --app app-name-here`
    system("curl -o #{dumpfile} `heroku pgbackups:url --app app-name-here`")
    `pg_restore --verbose --clean --no-acl --no-owner -h localhost -d #{db_config['database']} #{dumpfile}`
  end
end

Теперь, в любое время, когда я хочу вытащить свои производственные данные в dev, я просто запускаю rake database:pull

Это очень рудиментарное решение, но мне нужно только сделать это в моем случае.