Відповіді:
Щоб скинути базу даних, якщо ви використовуєте SHARED_DATABASE_URL
:
$ heroku pg:reset DATABASE_URL
Тепер відтворити базу даних без нічого:
$ heroku run rake db:migrate
Щоб заповнити базу даних вашими насіннєвими даними:
$ heroku run rake db:seed
--- АБО ---
Ви можете об'єднати останні два ( міграція та насіння ) в одну дію, виконавши це:
$ heroku run rake db:setup
Редагувати 2014-04-18: rake db:setup
не працює з Rails 4, не працює з a Couldn't create database error
.
Редагувати 2014-10-09: Ви можете використовувати rake db:setup
з Rails 4. Це дає Couldn't create database
помилку (оскільки база даних вже створена за допомогою heroku pg:reset
команди). Але він також завантажує вашу схему бази даних та ваші насіння після повідомлення про помилку.
Ви можете зробити це за допомогою будь-якої команди граблі, але є винятки. Наприклад, 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
--db
Зараз Heroku застарів варіант, тому тепер використовуйте:
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
таким чином ви можете вказати, який db-додаток потрібно скинути. Тоді можна бігти
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/isissue/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 <- це
базовий
стан плану DB
heroku pg: скинути HEROKU_POSTGRESQL_RED - підтвердити ім'я програми
Більше інформації можна знайти на: https://devcenter.heroku.com/articles/heroku-postgresql
Тепер також можна скинути базу даних через їх веб-інтерфейс.
Перейдіть на сторінку dashboard.heroku.com, виберіть додаток, і тоді ви знайдете базу даних під категорією додатків, натисніть на неї, і тоді зможете скинути базу даних.
Перевірте свою версію heroku. Я щойно оновив шахту до 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.міграція db відтворити.
heroku run rake db:migrate --app YOUR_APP
3.додайте дані насіння в db.
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: скинути DATABASE".
Найкращим рішенням для вашого питання буде
heroku pg:reset -r heroku --confirm your_heroku_app_name
--підтвердіть своє ім’я_героку_ап_
не потрібно, але термінал завжди просить мене виконати цю команду.
Після цієї команди у вас буде чистий db, без структури та ін., Після чого ви можете запустити
heroku run rake db:schema:load -r heroku
або
heroku run rake db:migrate -r heroku