with specific seeds run rails ruby-on-rails database seeding

ruby-on-rails - seeds - run specific seed rails



Restablezca la base de datos(depurar todo), luego inicialice una base de datos (5)

¿Existe un comando de rake para eliminar los datos en las tablas de la base de datos?

¿Cómo creo un script db: seed para completar previamente los datos en mis tablas?


A partir de Rails 5, la herramienta de línea de comandos de rake ha sido alias como rails por lo que ahora

rails db:reset lugar de rake db:reset

funcionará igual de bien


Puede eliminar todo y volver a crear bases de datos + semillas con ambos:

  1. rake db:reset : cargas de schema.rb
  2. rake db:drop db:create db:migrate db:seed : cargas de migraciones

Asegúrese de no tener conexiones con db (servidor de rieles, cliente SQL ...) o la db no se desconectará.

schema.rb es una instantánea del estado actual de su base de datos generado por:

rake db:schema:dump


Puede usar rake db:reset cuando quiera soltar la base de datos local y comenzar de rake db:reset con datos cargados desde db/seeds.rb . Este es un comando útil cuando todavía está averiguando su esquema y, a menudo, necesita agregar campos a los modelos existentes.

Una vez que se utiliza el comando de reinicio, se hará lo siguiente: Eliminar la base de datos: rake db:drop Cargar el esquema: rake db:schema:load Seed the data: rake db:seed

Pero si quiere eliminar completamente su base de datos, puede usar rake db:drop . La eliminación de la base de datos también eliminará cualquier conflicto de esquema o datos incorrectos. Si desea conservar los datos que tiene, asegúrese de realizar una copia de seguridad antes de ejecutar este comando.

Este es un artículo detallado sobre los comandos más importantes de la base de datos de rake .


Si no tiene ganas de dejar caer y recrear todo el shebang solo para volver a cargar sus datos, puede usar MyModel.destroy_all (o delete_all ) en el archivo seed.db para limpiar una tabla antes de su MyModel.create!(...) declaraciones cargan los datos. Luego, puede rehacer la operación db:seed una y otra vez. (Obviamente, esto solo afecta las tablas en las que ha cargado datos, no el resto).

Hay un "truco sucio" en https://.com/a/14957893/4553442 para agregar una operación de "eliminación de semillas" similar a la migración hacia arriba y hacia abajo ...