Respostas:
Eu uso o rake db:reset
que cai e, em seguida, recria o banco de dados e inclui o arquivo seeds.rb.
http://guides.rubyonrails.org/migrations.html#resetting-the-database
Você pode excluir tudo e recriar banco de dados + sementes com ambos:
rake db:reset
: carrega do schema.rbrake db:drop db:create db:migrate db:seed
: cargas de migraçõesVerifique se você não possui conexões com o db (servidor Rails, sql client ..) ou se o db não será eliminado.
schema.rb é uma captura instantânea do estado atual do seu banco de dados gerado por:
rake db:schema:dump
Se você não quiser eliminar e recriar todo o shebang apenas para recarregar seus dados, poderá usar MyModel.destroy_all
(ou delete_all
) no arquivo seed.db para limpar uma tabela antes que suas MyModel.create!(...)
instruções carreguem os dados. Em seguida, você pode refazer a db:seed
operação repetidamente. (Obviamente, isso afeta apenas as tabelas nas quais você carregou os dados, e não o restante).
Há um "truque sujo" em https://stackoverflow.com/a/14957893/4553442 para adicionar uma operação de "remoção de propagação" semelhante à migração para cima e para baixo ...
A partir do Rails 5, a rake
ferramenta de linha de comando tinha um alias rails
agora
rails db:reset
ao invés de rake db:reset
vai funcionar tão bem
Você pode usar rake db:reset
quando quiser descartar o banco de dados local e começar do zero com os dados carregados db/seeds.rb
. Este é um comando útil quando você ainda está descobrindo seu esquema e geralmente precisa adicionar campos aos modelos existentes.
Depois que o comando de redefinição for usado, ele fará o seguinte: Descarte o banco de dados: rake db:drop
Carregue o esquema: rake db:schema:load
propague os dados:rake db:seed
Mas se você quiser eliminar completamente o seu banco de dados, poderá usá-lo rake db:drop
. A eliminação do banco de dados também removerá qualquer conflito de esquema ou dados incorretos. Se você deseja manter os dados que possui, faça o backup antes de executar este comando.
Este é um artigo detalhado sobre os comandos mais importantes do banco de dados rake .