Respostas:
Para descartar o banco de dados, se você estiver usando SHARED_DATABASE_URL
:
$ heroku pg:reset DATABASE_URL
Agora, para recriar o banco de dados sem nada:
$ heroku run rake db:migrate
Para preencher o banco de dados com seus dados iniciais:
$ heroku run rake db:seed
---OU---
Você pode combinar os dois últimos ( migrar e propagar ) em uma ação executando o seguinte:
$ heroku run rake db:setup
Edit 18-04-2014: rake db:setup
não funciona com o Rails 4, falha com um Couldn't create database error
.
Editar 09/10/2014: você pode usar rake db:setup
com o Rails 4. Isso gera um Couldn't create database
erro (porque o banco de dados já foi criado usando o heroku pg:reset
comando). Mas também carrega seu esquema de banco de dados e suas sementes após a mensagem de erro.
Você pode fazer isso com praticamente qualquer comando rake, mas há exceções. Por exemplo, db:reset
não funciona via heroku run rake
. Você tem que usar em seu pg:reset
lugar.
Mais informações podem ser encontradas na documentação do Heroku:
SHARED_DATABASE_URL is deprecated, please use SHARED_DATABASE
heroku pg:reset DATABASE
heroku pg:reset DATABASE --confirm appname
Heroku descontinuou a --db
opção agora, então agora use:
heroku pg:reset DATABASE_URL --confirm {the name of your app}
É um pouco confuso porque você usa o texto literal, SHARED_DATABASE
mas onde escrevi {the name of your app}
substitua o nome do seu aplicativo. Por exemplo, se seu aplicativo é chamado my_great_app, você usa:
heroku pg:reset DATABASE_URL --confirm my_great_app
SHARED_DATABASE
Para descartar o banco de dados:
$ heroku pg:reset SHARED_DATABASE --confirm NAME_OF_THE_APP
Para recriar o banco de dados:
$ heroku run rake db:migrate
Para propagar o banco de dados:
$ heroku run rake db:seed
**Passo final
$ heroku restart
heroku run rake db:migrate
não recria mais o banco de dados
A corrente, ie. 2017 maneira de fazer isso é:
heroku pg:reset DATABASE
https://devcenter.heroku.com/articles/heroku-postgresql#pg-reset
heroku run rake db:migrate db:seed
Agora o comando é
heroku pg:reset DATABASE_URL --confirm your_app_name
Dessa forma, você pode especificar o banco de dados do aplicativo que deseja redefinir. Então você pode correr
heroku run rake db:migrate
heroku run rake db:seed
ou direto para os dois comandos acima
heroku run rake db:setup
E agora etapa final para reiniciar seu aplicativo
heroku restart
Entrei em contato com o suporte do Heroku e eles confirmaram que é um bug com a última gem (estou usando o heroku-2.26.2)
Charlie - estamos cientes desse problema com a gema 'heroku' e estamos trabalhando para corrigi-lo.
Aqui está o problema, se você quiser acompanhar - https://github.com/heroku/heroku/issues/356
Fazer o downgrade para uma versão anterior da gema 'heroku' deve ajudar. Eu tenho usado a v2.25.0 durante a maior parte de hoje sem problemas.
Faça o downgrade com os seguintes comandos:
gem uninstall heroku
gem install heroku --version 2.25.0
Se você já possui várias gemas instaladas, pode ser apresentado a você:
Select gem to uninstall: 1. heroku-2.25.0 2. heroku-2.26.2 3. All versions
Apenas desinstale o # 2 e execute novamente o comando. Alegria!
A resposta completa é (para usuários com multi-db):
heroku pg: info - que resultados
=== HEROKU_POSTGRESQL_RED <- este é
o
status básico do plano de banco de dados disponível
heroku pg: redefinir HEROKU_POSTGRESQL_RED --confirm app_name
Mais informações encontradas em: https://devcenter.heroku.com/articles/heroku-postgresql
Agora é diferente com o heroku. Tente: heroku pg: reset DATABASE --confirm
Agora também é possível redefinir o banco de dados através de sua interface da web.
Vá para dashboard.heroku.com, selecione seu aplicativo e, em seguida, você encontrará o banco de dados na categoria de complementos, clique nele e poderá redefinir o banco de dados.
Verifique sua versão heroku. Acabei de atualizar o meu para 2.29.0, da seguinte maneira:
heroku --version
#=> heroku-gem/2.29.0 (x86_64-linux) ruby/1.9.3
Agora você pode executar:
heroku pg:reset DATABASE --confirm YOUR_APP_NAME
Em seguida, crie seu banco de dados e propague-o em um único comando:
heroku run rake db:setup
Agora reinicie e tente seu aplicativo:
heroku restart
heroku open
Isto é o que funcionou para mim.
1.claro db.
heroku pg:reset --app YOUR_APP
Após a execução, você precisará digitar o nome do aplicativo novamente para confirmar.
2.migrar db para recriar.
heroku run rake db:migrate --app YOUR_APP
3.adicione dados de semente ao db.
heroku run rake db:seed --app YOUR_APP
Caso você prefira usar o site da Heroku:
Supondo que você deseja redefinir seu banco de dados PostgreSQL e configurá-lo novamente, use:
heroku apps
para listar seus aplicativos no Heroku. Encontre o nome do seu aplicativo atual ( application_name
). Então corra
heroku config | grep POSTGRESQL
para obter o nome dos seus bancos de dados. Um exemplo pode ser
HEROKU_POSTGRESQL_WHITE_URL
Finalmente, dado application_name
e database_url
, você deve executar
heroku pg:reset `database_url` --confirm `application_name`
heroku run rake db:migrate
heroku restart
Se você estiver conectado a partir do console, isso fará o trabalho no último cinto de ferramentas heroku,
heroku pg: reset --confirm database-name
Eu sempre faço isso com o one-liner 'heroku pg: reset DATABASE'.
A melhor solução para o seu problema será
heroku pg:reset -r heroku --confirm your_heroku_app_name
--confirme seu_heroku_app_name
não é necessário, mas o terminal sempre me pede para executar esse comando.
Após esse comando, você terá um banco de dados puro, sem estrutura e outras coisas, depois poderá executar
heroku run rake db:schema:load -r heroku
ou
heroku run rake db:migrate -r heroku