Antworten:
So löschen Sie die Datenbank, wenn Sie Folgendes verwenden SHARED_DATABASE_URL
:
$ heroku pg:reset DATABASE_URL
Um nun die Datenbank mit nichts darin neu zu erstellen :
$ heroku run rake db:migrate
So füllen Sie die Datenbank mit Ihren Startdaten:
$ heroku run rake db:seed
---ODER---
Sie können die letzten beiden ( migrieren & Startwert ) zu einer Aktion kombinieren, indem Sie Folgendes ausführen:
$ heroku run rake db:setup
Edit 2014-04-18: rake db:setup
funktioniert nicht mit Rails 4, es schlägt mit a fehl Couldn't create database error
.
Edit 2014-10-09: Sie können rake db:setup
mit Rails 4 verwenden. Es wird ein Couldn't create database
Fehler angezeigt (da die Datenbank bereits mit dem heroku pg:reset
Befehl erstellt wurde). Es lädt aber auch Ihr Datenbankschema und Ihre Seeds nach der Fehlermeldung.
Sie können dies mit so ziemlich jedem Rechenbefehl tun, aber es gibt Ausnahmen. Funktioniert zum Beispiel db:reset
nicht über heroku run rake
. Du musst benutzenpg:reset
stattdessen verwenden.
Weitere Informationen finden Sie in der Dokumentation von Heroku:
SHARED_DATABASE_URL is deprecated, please use SHARED_DATABASE
heroku pg:reset DATABASE
heroku pg:reset DATABASE --confirm appname
Heroku hat die --db
Option jetzt abgelehnt. Verwenden Sie jetzt:
heroku pg:reset DATABASE_URL --confirm {the name of your app}
Es ist ein wenig verwirrend, weil Sie den wörtlichen Text verwenden, SHARED_DATABASE
aber wo ich geschrieben habe, {the name of your app}
ersetzen Sie den Namen Ihrer App. Wenn Ihre App beispielsweise my_great_app heißt, verwenden Sie:
heroku pg:reset DATABASE_URL --confirm my_great_app
SHARED_DATABASE
So löschen Sie die Datenbank:
$ heroku pg:reset SHARED_DATABASE --confirm NAME_OF_THE_APP
So erstellen Sie die Datenbank neu:
$ heroku run rake db:migrate
So setzen Sie die Datenbank:
$ heroku run rake db:seed
**Letzter Schritt
$ heroku restart
heroku run rake db:migrate
erstellt die Datenbank nicht mehr neu
Der Strom, dh. Der Weg 2017 dazu ist:
heroku pg:reset DATABASE
https://devcenter.heroku.com/articles/heroku-postgresql#pg-reset
heroku run rake db:migrate db:seed
Jetzt ist der Befehl
heroku pg:reset DATABASE_URL --confirm your_app_name
Auf diese Weise können Sie angeben, welche Datenbank der App Sie zurücksetzen möchten. Dann kannst du rennen
heroku run rake db:migrate
heroku run rake db:seed
oder direkt für beide oben genannten Befehle
heroku run rake db:setup
Und jetzt der letzte Schritt, um Ihre App neu zu starten
heroku restart
Ich habe den Heroku-Support kontaktiert und sie haben bestätigt, dass es sich um einen Fehler mit dem neuesten Juwel handelt (ich verwende Heroku-2.26.2).
Charlie - wir sind uns dieses Problems mit dem 'Heroku'-Edelstein bewusst und arbeiten daran, es zu beheben.
Hier ist das Problem, wenn Sie mitmachen möchten: https://github.com/heroku/heroku/issues/356
Ein Downgrade auf eine frühere Version des 'Heroku'-Edelsteins sollte helfen. Ich habe v2.25.0 für den größten Teil des heutigen Tages ohne Probleme verwendet.
Downgrade mit folgenden Befehlen:
gem uninstall heroku
gem install heroku --version 2.25.0
Wenn Sie bereits mehrere Edelsteine installiert haben, wird Ihnen möglicherweise Folgendes angezeigt:
Select gem to uninstall: 1. heroku-2.25.0 2. heroku-2.26.2 3. All versions
Deinstallieren Sie einfach # 2 und führen Sie den Befehl erneut aus. Freude!
Die vollständige Antwort lautet (für Benutzer mit Multi-DB):
heroku pg: info - welche ausgänge
=== HEROKU_POSTGRESQL_RED <- Dies ist der verfügbare DB
Plan- Basisstatus
heroku pg: HEROKU_POSTGRESQL_RED zurücksetzen - app_name bestätigen
Weitere Informationen finden Sie unter: https://devcenter.heroku.com/articles/heroku-postgresql
Jetzt ist es auch möglich, die Datenbank über ihre Weboberfläche zurückzusetzen.
Gehen Sie zu dashboard.heroku.com, wählen Sie Ihre App aus und Sie finden die Datenbank unter der Kategorie Add-Ons. Klicken Sie darauf und Sie können die Datenbank zurücksetzen.
Überprüfen Sie Ihre Heroku-Version. Ich habe meine gerade wie folgt auf 2.29.0 aktualisiert:
heroku --version
#=> heroku-gem/2.29.0 (x86_64-linux) ruby/1.9.3
Jetzt können Sie ausführen:
heroku pg:reset DATABASE --confirm YOUR_APP_NAME
Erstellen Sie dann Ihre Datenbank und legen Sie sie in einem einzigen Befehl fest:
heroku run rake db:setup
Starten Sie jetzt neu und testen Sie Ihre App:
heroku restart
heroku open
Das hat bei mir funktioniert.
1.clear db.
heroku pg:reset --app YOUR_APP
Nach dem Ausführen müssen Sie Ihren App-Namen erneut eingeben, um dies zu bestätigen.
2. Migrieren Sie die Datenbank, um sie neu zu erstellen.
heroku run rake db:migrate --app YOUR_APP
3. Fügen Sie db Seed-Daten hinzu.
heroku run rake db:seed --app YOUR_APP
Falls Sie die Heroku-Website bevorzugen:
Angenommen, Sie möchten Ihre PostgreSQL-Datenbank zurücksetzen und wieder einrichten, verwenden Sie:
heroku apps
um Ihre Anwendungen auf Heroku aufzulisten. Suchen Sie den Namen Ihrer aktuellen Anwendung ( application_name
). Dann renne
heroku config | grep POSTGRESQL
um den Namen Ihrer Datenbanken zu erhalten. Ein Beispiel könnte sein
HEROKU_POSTGRESQL_WHITE_URL
Schließlich gegeben application_name
und database_url
, sollten Sie laufen
heroku pg:reset `database_url` --confirm `application_name`
heroku run rake db:migrate
heroku restart
Wenn Sie über die Konsole angemeldet sind, erledigt dies die Aufgabe im neuesten Heroku-Toolbelt.
heroku pg: reset - Datenbankname bestätigen
Ich mache das immer mit dem Einzeiler 'heroku pg: reset DATABASE'.
Die beste Lösung für Ihr Problem wird sein
heroku pg:reset -r heroku --confirm your_heroku_app_name
--bestätige deinen_heroku_app_namen
ist nicht erforderlich, aber das Terminal bittet mich immer, diesen Befehl auszuführen.
Nach diesem Befehl haben Sie eine reine Datenbank ohne Struktur und Zeug, danach können Sie ausführen
heroku run rake db:schema:load -r heroku
oder
heroku run rake db:migrate -r heroku