Risposte:
Uso quello rake db:reset
che rilascia e poi ricrea il database e include il tuo file seeds.rb.
http://guides.rubyonrails.org/migrations.html#resetting-the-database
Puoi eliminare tutto e ricreare database + seed con entrambi:
rake db:reset
: carica da schema.rbrake db:drop db:create db:migrate db:seed
: carichi dalle migrazioniAssicurati di non avere connessioni a db (rails server, sql client ..) altrimenti il db non cadrà.
schema.rb è un'istantanea dello stato corrente del database generato da:
rake db:schema:dump
Se non hai voglia di abbandonare e ricreare l'intero shebang solo per ricaricare i tuoi dati, potresti usare MyModel.destroy_all
(o delete_all
) nel file seed.db per ripulire una tabella prima che le tue MyModel.create!(...)
istruzioni caricino i dati. Quindi, è possibile ripetere l' db:seed
operazione più e più volte. (Ovviamente, ciò influisce solo sulle tabelle in cui hai caricato i dati, non su tutti gli altri.)
C'è un "trucco sporco" su https://stackoverflow.com/a/14957893/4553442 per aggiungere un'operazione di "de-seeding" simile alla migrazione su e giù ...
A partire da Rails 5, lo rake
strumento da riga di comando è stato modificato in questo rails
modo
rails db:reset
invece di rake db:reset
funzionerà altrettanto bene
È possibile utilizzare rake db:reset
quando si desidera eliminare il database locale e ricominciare da capo con i dati caricati db/seeds.rb
. Questo è un comando utile quando stai ancora cercando di capire il tuo schema e spesso devi aggiungere campi ai modelli esistenti.
Una volta utilizzato il comando di ripristino, eseguirà le seguenti operazioni: Elimina il database: rake db:drop
Carica lo schema: rake db:schema:load
Semina i dati:rake db:seed
Ma se vuoi eliminare completamente il tuo database puoi usarlo rake db:drop
. La caduta del database rimuoverà anche eventuali conflitti di schema o dati errati. Se si desidera conservare i dati in proprio possesso, assicurarsi di eseguirne il backup prima di eseguire questo comando.
Questo è un articolo dettagliato sui più importanti comandi del database rake .