Ответы:
Чтобы удалить базу данных, если вы используете SHARED_DATABASE_URL
:
$ heroku pg:reset DATABASE_URL
Теперь для воссоздания базы данных, в которой ничего нет:
$ heroku run rake db:migrate
Чтобы заполнить базу данных вашими начальными данными:
$ heroku run rake db:seed
---ИЛИ---
Вы можете объединить последние два ( перенести и заполнить ) в одно действие, выполнив это:
$ heroku run rake db:setup
Edit 2014-04-18: rake db:setup
не работает с Rails 4, не работает сCouldn't create database error
.
Edit 2014-10-09: Вы можете использовать rake db:setup
с Rails 4. Это выдает Couldn't create database
ошибку (потому что база данных уже была создана с помощью heroku pg:reset
команды). Но он также загружает вашу схему базы данных и ваши семена после сообщения об ошибке.
Вы можете сделать это практически любой командой rake, но есть исключения. Например, db:reset
не работает через heroku run rake
. Вы должны использоватьpg:reset
вместо этого.
Более подробную информацию можно найти в документации Heroku:
SHARED_DATABASE_URL is deprecated, please use SHARED_DATABASE
heroku pg:reset DATABASE
heroku pg:reset DATABASE --confirm appname
Heroku устарела --db
, поэтому теперь используйте:
heroku pg:reset DATABASE_URL --confirm {the name of your app}
Это немного сбивает с толку, потому что вы используете буквальный текст, SHARED_DATABASE
но там, где я написал, {the name of your app}
замените название вашего приложения. Например, если ваше приложение называется my_great_app, вы используете:
heroku pg:reset DATABASE_URL --confirm my_great_app
SHARED_DATABASE
Чтобы удалить базу данных:
$ heroku pg:reset SHARED_DATABASE --confirm NAME_OF_THE_APP
Чтобы воссоздать базу данных:
$ heroku run rake db:migrate
Чтобы заполнить базу данных:
$ heroku run rake db:seed
**Заключительный этап
$ heroku restart
heroku run rake db:migrate
больше не воссоздает базу данных
Тока, т.е. 2017 способ сделать это:
heroku pg:reset DATABASE
https://devcenter.heroku.com/articles/heroku-postgresql#pg-reset
heroku run rake db:migrate db:seed
Теперь команда
heroku pg:reset DATABASE_URL --confirm your_app_name
таким образом, вы можете указать, какую базу данных приложения вы хотите сбросить. Тогда вы можете запустить
heroku run rake db:migrate
heroku run rake db:seed
или направить обе вышеуказанные команды
heroku run rake db:setup
А теперь последний шаг, чтобы перезапустить ваше приложение
heroku restart
Я связался со службой поддержки Heroku, и они подтвердили, что это ошибка в последней версии гема (я использую heroku-2.26.2)
Чарли - мы знаем об этой проблеме с драгоценным камнем 'heroku' и работаем над ее устранением.
Вот проблема, если вы хотите следовать - https://github.com/heroku/heroku/issues/356
Переход на более раннюю версию драгоценного камня 'heroku' должен помочь. Я использую v2.25.0 большую часть сегодняшнего дня без проблем.
Понизьте рейтинг с помощью следующих команд:
gem uninstall heroku
gem install heroku --version 2.25.0
Если у вас уже установлено несколько драгоценных камней, вам могут быть представлены:
Select gem to uninstall: 1. heroku-2.25.0 2. heroku-2.26.2 3. All versions
Просто удалите # 2 и повторите команду. Радость!
Полный ответ (для пользователей с несколькими БД):
heroku pg: информация - какие выходы
=== HEROKU_POSTGRESQL_RED <- доступен
базовый
статус плана БД
heroku pg: сбросить HEROKU_POSTGRESQL_RED - подтвердить app_name
Более подробная информация находится по адресу : https://devcenter.heroku.com/articles/heroku-postgresql
Теперь также возможно сбросить базу данных через их веб-интерфейс.
Перейдите на dashboard.heroku.com, выберите свое приложение, и затем вы найдете базу данных в категории надстроек, щелкните по ней и затем сможете сбросить базу данных.
Проверьте свою версию героку. Я только что обновил мой до 2.29.0 следующим образом:
heroku --version
#=> heroku-gem/2.29.0 (x86_64-linux) ruby/1.9.3
Теперь вы можете запустить:
heroku pg:reset DATABASE --confirm YOUR_APP_NAME
Затем создайте базу данных и заполните ее одной командой:
heroku run rake db:setup
Теперь перезагрузите и попробуйте ваше приложение:
heroku restart
heroku open
Это то, что сработало для меня.
1. ясно, БД.
heroku pg:reset --app YOUR_APP
После запуска вам придется снова ввести имя вашего приложения для подтверждения.
2. Миграция БД для воссоздания.
heroku run rake db:migrate --app YOUR_APP
3. добавить начальные данные в БД.
heroku run rake db:seed --app YOUR_APP
Если вы предпочитаете использовать веб-сайт Heroku:
Предполагая, что вы хотите сбросить базу данных PostgreSQL и восстановить ее, используйте:
heroku apps
перечислить ваши заявки на Heroku. Найдите название вашего текущего приложения ( application_name
). Тогда беги
heroku config | grep POSTGRESQL
чтобы получить название ваших баз данных. Примером может быть
HEROKU_POSTGRESQL_WHITE_URL
Наконец, учитывая, application_name
и database_url
вы должны запустить
heroku pg:reset `database_url` --confirm `application_name`
heroku run rake db:migrate
heroku restart
Если вы вошли в систему с консоли, это сделает работу в последнем инструментальном поясе heroku,
heroku pg: сбросить - подтвердить имя базы данных
Я всегда делаю это с помощью однострочного «heroku pg: reset DATABASE».
Лучшее решение для вашей проблемы будет
heroku pg:reset -r heroku --confirm your_heroku_app_name
- подтвердите ваше_имя_приложения
не требуется, но терминал всегда просит меня выполнить эту команду.
После этой команды у вас будет чистый БД, без структуры и прочее, после этого вы можете запустить
heroku run rake db:schema:load -r heroku
или
heroku run rake db:migrate -r heroku