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:
-
rake db:reset
: cargas de schema.rb -
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 ...
Yo uso rake db:reset
which drops y luego recrea la base de datos e incluye su archivo seeds.rb. http://guides.rubyonrails.org/migrations.html#resetting-the-database