Existe um comando rake para limpar os dados nas tabelas do banco de dados?
Como crio um script db: seed para preencher previamente os dados em minhas tabelas?
ruby-on-rails
database
seeding
Blankman
fonte
fonte
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:
fonte
Se você não quiser eliminar e recriar todo o shebang apenas para recarregar seus dados, poderá usar
MyModel.destroy_all
(oudelete_all
) no arquivo seed.db para limpar uma tabela antes que suasMyModel.create!(...)
instruções carreguem os dados. Em seguida, você pode refazer adb: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 ...
fonte
A partir do Rails 5, a
rake
ferramenta de linha de comando tinha um aliasrails
agorarails db:reset
ao invés derake db:reset
vai funcionar tão bem
fonte
Você pode usar
rake db:reset
quando quiser descartar o banco de dados local e começar do zero com os dados carregadosdb/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 .
fonte