Risposte:
Per eliminare il database, se si utilizza SHARED_DATABASE_URL
:
$ heroku pg:reset DATABASE_URL
Ora per ricreare il database senza nulla al suo interno:
$ heroku run rake db:migrate
Per popolare il database con i tuoi dati seed:
$ heroku run rake db:seed
---O---
Puoi combinare gli ultimi due ( migrazione e seeding ) in una sola azione eseguendo questo:
$ heroku run rake db:setup
Modifica 18/04/2014: rake db:setup
non funziona con Rails 4, fallisce con a Couldn't create database error
.
Modifica 09-10-2014: è possibile utilizzare rake db:setup
con Rails 4. Ti dà un Couldn't create database
errore (perché il database è già stato creato usando il heroku pg:reset
comando). Ma carica anche lo schema del database e i semi dopo il messaggio di errore.
Puoi farlo praticamente con qualsiasi comando rake, ma ci sono eccezioni. Ad esempio, db:reset
non funziona tramite heroku run rake
. Devi usare pg:reset
invece.
Ulteriori informazioni sono disponibili nella documentazione di Heroku:
SHARED_DATABASE_URL is deprecated, please use SHARED_DATABASE
heroku pg:reset DATABASE
heroku pg:reset DATABASE --confirm appname
Heroku ora ha deprecato l' --db
opzione, quindi ora usa:
heroku pg:reset DATABASE_URL --confirm {the name of your app}
È un po 'confuso perché usi il testo letterale SHARED_DATABASE
ma dove ho scritto {the name of your app}
sostituisco il nome della tua app. Ad esempio, se l'app si chiama my_great_app, si utilizza:
heroku pg:reset DATABASE_URL --confirm my_great_app
SHARED_DATABASE
Per eliminare il database:
$ heroku pg:reset SHARED_DATABASE --confirm NAME_OF_THE_APP
Per ricreare il database:
$ heroku run rake db:migrate
Per eseguire il seeding del database:
$ heroku run rake db:seed
**Passo finale
$ heroku restart
heroku run rake db:migrate
non ricrea più il database
La corrente, cioè. Il modo 2017 per farlo è:
heroku pg:reset DATABASE
https://devcenter.heroku.com/articles/heroku-postgresql#pg-reset
heroku run rake db:migrate db:seed
Ora il comando è
heroku pg:reset DATABASE_URL --confirm your_app_name
in questo modo puoi specificare quale db dell'app vuoi ripristinare. Quindi puoi correre
heroku run rake db:migrate
heroku run rake db:seed
o diretto per entrambi i comandi sopra
heroku run rake db:setup
E ora il passaggio finale per riavviare l'app
heroku restart
Ho contattato il supporto Heroku e hanno confermato che si tratta di un bug con l'ultima gemma (sto usando heroku-2.26.2)
Charlie - siamo a conoscenza di questo problema con la gemma "heroku" e stiamo lavorando per risolverlo.
Ecco il problema se ti interessa seguire - https://github.com/heroku/heroku/issues/356
Il downgrade a una versione precedente della gemma "heroku" dovrebbe aiutare. Sto usando v2.25.0 per la maggior parte di oggi senza problemi.
Esegui il downgrade con i seguenti comandi:
gem uninstall heroku
gem install heroku --version 2.25.0
Se hai già installato più gemme, potresti essere presentato con:
Select gem to uninstall: 1. heroku-2.25.0 2. heroku-2.26.2 3. All versions
Basta disinstallare # 2 ed eseguire nuovamente il comando. Gioia!
La risposta completa è (per utenti con multi-db):
heroku pg: info - quali output
=== HEROKU_POSTGRESQL_RED <- questo è lo stato di
base del piano DB
disponibile
heroku pg: ripristina HEROKU_POSTGRESQL_RED --conferma il nome app
Maggiori informazioni sono disponibili in: https://devcenter.heroku.com/articles/heroku-postgresql
Ora è diverso con heroku. Prova: heroku pg: ripristina DATABASE --confirm
Ora è anche possibile ripristinare il database tramite la loro interfaccia web.
Vai su dashboard.heroku.com seleziona la tua app e troverai il database nella categoria dei componenti aggiuntivi, fai clic su di esso e quindi puoi ripristinare il database.
Controlla la tua versione di heroku. Ho appena aggiornato il mio in 2.29.0, come segue:
heroku --version
#=> heroku-gem/2.29.0 (x86_64-linux) ruby/1.9.3
Ora puoi eseguire:
heroku pg:reset DATABASE --confirm YOUR_APP_NAME
Quindi crea il tuo database e seminalo in un unico comando:
heroku run rake db:setup
Ora riavvia e prova la tua app:
heroku restart
heroku open
Questo è ciò che ha funzionato per me.
1.clear db.
heroku pg:reset --app YOUR_APP
Dopo averlo eseguito, dovrai digitare nuovamente il nome dell'app per confermare.
2.migrare db per ricreare.
heroku run rake db:migrate --app YOUR_APP
3.aggiungere i dati del seme in db.
heroku run rake db:seed --app YOUR_APP
Nel caso in cui si preferisca utilizzare il sito Web Heroku:
Supponendo di voler ripristinare il database PostgreSQL e ripristinarlo, utilizzare:
heroku apps
per elencare le tue applicazioni su Heroku. Trova il nome dell'applicazione corrente ( application_name
). Quindi corri
heroku config | grep POSTGRESQL
per ottenere il nome dei tuoi database. Un esempio potrebbe essere
HEROKU_POSTGRESQL_WHITE_URL
Alla fine, dato application_name
e database_url
, dovresti correre
heroku pg:reset `database_url` --confirm `application_name`
heroku run rake db:migrate
heroku restart
Se hai effettuato l'accesso dalla console, questo farà il lavoro nell'ultima cintura degli strumenti heroku,
heroku pg: reset --conferma nome-database
Lo faccio sempre con il comando "heroku pg: reset DATABASE".
La migliore soluzione per il tuo problema sarà
heroku pg:reset -r heroku --confirm your_heroku_app_name
--conferma your_heroku_app_name
non è richiesto, ma il terminale mi chiede sempre di fare quel comando.
Dopo quel comando avrai puro db, senza struttura e roba, dopodiché potrai eseguire
heroku run rake db:schema:load -r heroku
o
heroku run rake db:migrate -r heroku