Odpowiedzi:
Aby usunąć bazę danych, jeśli używasz SHARED_DATABASE_URL
:
$ heroku pg:reset DATABASE_URL
Teraz, aby odtworzyć bazę danych bez niczego:
$ heroku run rake db:migrate
Aby wypełnić bazę danych danymi źródłowymi:
$ heroku run rake db:seed
---LUB---
Możesz połączyć dwie ostatnie ( migrację i seed ) w jedną akcję, wykonując to:
$ heroku run rake db:setup
Edytuj 18.04.2014: rake db:setup
nie działa z Rails 4, nie działa z Couldn't create database error
.
Edytuj 2014-10-09: Możesz używać rake db:setup
z Rails 4. Daje to Couldn't create database
błąd (ponieważ baza danych została już utworzona za pomocą heroku pg:reset
polecenia). Ale ładuje również schemat bazy danych i nasiona po komunikacie o błędzie.
Możesz to zrobić za pomocą dowolnej komendy rake, ale są wyjątki. Na przykład db:reset
nie działa przez heroku run rake
. Zamiast tego musisz użyć pg:reset
.
Więcej informacji można znaleźć w dokumentacji Heroku:
SHARED_DATABASE_URL is deprecated, please use SHARED_DATABASE
heroku pg:reset DATABASE
heroku pg:reset DATABASE --confirm appname
Heroku wycofało już tę --db
opcję, więc użyj teraz:
heroku pg:reset DATABASE_URL --confirm {the name of your app}
To trochę mylące, ponieważ używasz dosłownego tekstu, SHARED_DATABASE
ale tam, gdzie napisałem, {the name of your app}
zastąp nazwę swojej aplikacji. Na przykład, jeśli twoja aplikacja nazywa się my_great_app, używasz:
heroku pg:reset DATABASE_URL --confirm my_great_app
SHARED_DATABASE
Aby usunąć bazę danych:
$ heroku pg:reset SHARED_DATABASE --confirm NAME_OF_THE_APP
Aby ponownie utworzyć bazę danych:
$ heroku run rake db:migrate
Aby zainicjować bazę danych:
$ heroku run rake db:seed
**Ostatni krok
$ heroku restart
heroku run rake db:migrate
nie tworzy już bazy danych
Prąd, tj. Sposób na 2017 r. To:
heroku pg:reset DATABASE
https://devcenter.heroku.com/articles/heroku-postgresql#pg-reset
heroku run rake db:migrate db:seed
Teraz polecenie jest
heroku pg:reset DATABASE_URL --confirm your_app_name
w ten sposób możesz określić bazę danych aplikacji, którą chcesz zresetować. Potem możesz biec
heroku run rake db:migrate
heroku run rake db:seed
lub bezpośrednio dla obu powyższych poleceń
heroku run rake db:setup
A teraz ostatni krok do ponownego uruchomienia aplikacji
heroku restart
Skontaktowałem się z obsługą Heroku, a oni potwierdzili, że jest to błąd związany z najnowszym klejnotem (używam heroku-2.26.2)
Charlie - zdajemy sobie sprawę z tego problemu z klejnotem „heroku” i pracujemy nad jego rozwiązaniem.
Oto problem, jeśli zależy Ci na kontynuacji - https://github.com/heroku/heroku/issues/356
Przejście na wcześniejszą wersję klejnotu „heroku” powinno pomóc. Używam v2.25.0 przez większość dnia bez problemu.
Zmień wersję za pomocą następujących poleceń:
gem uninstall heroku
gem install heroku --version 2.25.0
Jeśli masz już zainstalowanych wiele klejnotów, możesz otrzymać:
Select gem to uninstall: 1. heroku-2.25.0 2. heroku-2.26.2 3. All versions
Po prostu odinstaluj # 2 i uruchom ponownie polecenie. Radość!
Kompletna odpowiedź (dla użytkowników z multi-db):
heroku pg: info - które wyjścia
=== HEROKU_POSTGRESQL_RED <- dostępny jest status
podstawowy planu DB
heroku pg: reset HEROKU_POSTGRESQL_RED - potwierdź nazwę aplikacji
Więcej informacji można znaleźć w: https://devcenter.heroku.com/articles/heroku-postgresql
Teraz można również zresetować bazę danych za pomocą interfejsu internetowego.
Wejdź na dashboard.heroku.com, wybierz aplikację, a następnie znajdziesz bazę danych w kategorii dodatków, kliknij ją, a następnie możesz zresetować bazę danych.
Sprawdź swoją wersję heroku. Właśnie zaktualizowałem mój do 2.29.0 w następujący sposób:
heroku --version
#=> heroku-gem/2.29.0 (x86_64-linux) ruby/1.9.3
Teraz możesz uruchomić:
heroku pg:reset DATABASE --confirm YOUR_APP_NAME
Następnie utwórz bazę danych i umieść ją w jednym poleceniu:
heroku run rake db:setup
Teraz uruchom ponownie i wypróbuj aplikację:
heroku restart
heroku open
To działało dla mnie.
1. wyczyść db.
heroku pg:reset --app YOUR_APP
Po uruchomieniu musisz ponownie wpisać nazwę aplikacji, aby potwierdzić.
2. migruj bazę danych, aby ponownie utworzyć.
heroku run rake db:migrate --app YOUR_APP
3. dodaj dane nasion do db.
heroku run rake db:seed --app YOUR_APP
Jeśli wolisz korzystać ze strony internetowej Heroku:
Zakładając, że chcesz zresetować bazę danych PostgreSQL i ustawić ją ponownie, użyj:
heroku apps
aby wyświetlić listę aplikacji w Heroku. Znajdź nazwę swojej bieżącej aplikacji ( application_name
). Następnie uruchomić
heroku config | grep POSTGRESQL
aby uzyskać nazwę swoich baz danych. Przykładem może być
HEROKU_POSTGRESQL_WHITE_URL
Wreszcie podane application_name
i database_url
należy uruchomić
heroku pg:reset `database_url` --confirm `application_name`
heroku run rake db:migrate
heroku restart
Jeśli jesteś zalogowany z konsoli, wykona to zadanie w najnowszym pasku narzędzi heroku,
heroku pg: reset --confirm nazwa-bazy danych
Zawsze robię to z jednowierszowym „heroku pg: reset DATABASE”.
Najlepszym rozwiązaniem będzie Twój problem
heroku pg:reset -r heroku --confirm your_heroku_app_name
- potwierdź swoją nazwę aplikacji_heroku
nie jest wymagane, ale terminal zawsze pyta mnie o wykonanie tego polecenia.
Po tym poleceniu będziesz miał czystą db, bez struktury i innych rzeczy, po czym będziesz mógł uruchomić
heroku run rake db:schema:load -r heroku
lub
heroku run rake db:migrate -r heroku