Як спорожнити базу даних Heroku


Відповіді:


689

Щоб скинути базу даних, якщо ви використовуєте 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:

Запуск команд граблі

Скинути DB Postgres


21
Дякую. Власне, "heroku pg: reset --db SHARED_DATABASE_URL" зробив свою справу. Але ти змусив мене йти в правильному напрямку.
Джей Годсе

5
@JayGodse Heroku зараз кажеSHARED_DATABASE_URL is deprecated, please use SHARED_DATABASE
Phil

6
Насправді ви маєте перевірити свій schema.rb, і вам слід скористатися: rake db: schema: load
Amala

18
Вони знову змінили цеheroku pg:reset DATABASE
Харіс Крайна

8
Щоб заощадити пару секунд часу, використовуйтеheroku pg:reset DATABASE --confirm appname
GangstaGraham

97

--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

3
якщо ви просто вставте пропустіть біт після (у тому числі) - heroku підкаже, що набрати ..
baash05

корисна команда для отримання імені вашої бази даних поштових повідомлень на heroku: heroku config | grep HEROKU_POSTGRESQL
zero_cool

"ви використовуєте дослівний текст SHARED_DATABASE"? Ви використовуєте DATABASE_URL у своїх зразках коду. Ти це маєш на увазі?
Майкл Дюррант

Ні. Я мав на увазі використання інших слів у відповідіSHARED_DATABASE
Дейв Саг

65

Щоб скинути базу даних:

$ heroku pg:reset SHARED_DATABASE --confirm NAME_OF_THE_APP

Щоб відтворити базу даних:

$ heroku run rake db:migrate

Щоб вивести базу даних:

$ heroku run rake db:seed

** Заключний крок

$ heroku restart

4
Я віддаю перевагу цій відповіді над будь-якою іншою. Це прекрасно працює за моїм сценарієм на Heroku, я вважаю, що це дуже мало голосів!
Джонатан

Це може бути тому, що нещодавно heroku змінив синтаксис цих команд.
Джордж Якуб

1
"Перезапуск героку" був єдиним ключовим твором, який мені не вистачало. Дякую.
Джеремі Микола Миколайович

heroku run rake db:migrateбільше не відтворює базу даних
Rots


13

Тепер команда є

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

1
Перезапуск може виявитися не потрібним, але хорошим моментом є згадка про це.
Франсіско Кінтеро

11

Я зв’язався із службою підтримки 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 і повторіть команду. Радість!


1
Тепер усі дорогоцінні камені застарілі, потрібно позбутися від них та встановити панель інструментів Heroku. toolbelt.heroku.com
Ghoti

9

Повний відповідь (для користувачів з кількома БД):

heroku pg: інформація - яка виводить

=== HEROKU_POSTGRESQL_RED <- це
базовий
стан плану DB

heroku pg: скинути HEROKU_POSTGRESQL_RED - підтвердити ім'я програми

Більше інформації можна знайти на: https://devcenter.heroku.com/articles/heroku-postgresql


8

Тепер це відрізняється від героїки. Спробуйте: heroku pg: скинути DATABASE - підтвердити


Для деяких додатків вам все-таки потрібно використовувати SHARED_DATABASE
tfwright

7

Сьогодні командування

heroku pg:reset --db SHARED_DATABASE_URL

не працює для спільних планів, я вирішую використовувати

heroku pg:reset SHARED_DATABASE

6

Увійдіть до своєї БД за допомогою heroku pg:psqlта введіть наступні команди:

drop schema public cascade;
create schema public;

6

Тепер також можна скинути базу даних через їх веб-інтерфейс.

Перейдіть на сторінку dashboard.heroku.com, виберіть додаток, і тоді ви знайдете базу даних під категорією додатків, натисніть на неї, і тоді зможете скинути базу даних.

Скидання бази даних Heroku


5

Перевірте свою версію 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

4

Це те, що працювало для мене.

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

3

Якщо ви віддаєте перевагу використовувати веб-сайт Heroku:

  1. Перейдіть на сторінку https://postgres.heroku.com/databases
  2. Виберіть базу даних, яку потрібно скинути
  3. Натисніть кнопку налаштувань у правому верхньому куті
  4. Натисніть "Скинути базу даних", як показано нижче:
  5. введіть "RESET" і натисніть OK

скидання бази даних heroku


2

Припускаючи, що ви хочете скинути базу даних 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

1

Якщо ви ввійшли з консолі, це зробить роботу в останньому поясі інструментів heroku,

heroku pg: скинути - підтвердити ім'я бази даних



0

Найкращим рішенням для вашого питання буде

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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.