Restablecer la base de datos (purgar todo), a continuación, seed una base de datos


¿Hay un comando rake para borrar los datos en las tablas de la base de datos?

¿Cómo puedo crear un script db:seed para rellenar previamente los datos de mis tablas?

Author: Tiny Giant, 2010-10-23

5 answers

Utilizo rake db:reset que cae y luego recrea la base de datos e incluye sus semillas.archivo rb. http://guides.rubyonrails.org/migrations.html#resetting-the-database

 268
Author: JackCA,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-07-26 05:41:43

Puede eliminar todo y recrear database + seeds con ambos:

  1. rake db:reset: carga desde el esquema.rb
  2. rake db:drop db:create db:migrate db:seed: cargas desde migraciones

Asegúrese de que no tiene conexiones con la base de datos (servidor rails, cliente sql..) o el db no caerá.

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

rake db:schema:dump
 156
Author: laffuste,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-05-14 13:48:39

Si no tienes ganas de dejar caer y recrear todo el asunto solo para recargar tus datos, puedes usar MyModel.destroy_all (o delete_all) en la semilla.archivo db para limpiar una tabla antes de que sus sentencias MyModel.create!(...) carguen los datos. Luego, puede rehacer la operación db:seed una y otra vez. (Obviamente, esto solo afecta a las tablas en las que ha cargado los datos, no al resto de ellas.)

Hay un" truco sucio "en https://stackoverflow.com/a/14957893/4553442 para agregar una operación de" des-siembra " similar a migrando arriba y abajo...

 6
Author: Tom Hundt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:18:23

A partir de Rails 5, la herramienta de línea de comandos rake se ha alias como rails así que ahora

rails db:reset en lugar de rake db:reset

Funcionará igual de bien

 3
Author: DazBaldwin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-15 07:44:58

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

Una vez que se usa el comando reset, hará lo siguiente: Eliminar la base de datos: rake db:drop Cargar el esquema: rake db:schema:load Siembra los datos: rake db:seed

Pero si desea eliminar completamente su base de datos, puede usar rake db:drop. Eliminar la base de datos también eliminará cualquier esquema conflictos o datos erróneos. Si desea conservar los datos que tiene, asegúrese de hacer una copia de seguridad antes de ejecutar este comando.

Este es un artículo detallado sobre los comandos más importantes rake database.

 0
Author: Nesha Zoric,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-29 14:13:50