Esiste un comando rake per cancellare i dati nelle tabelle del database?Reimposta il database (elimina tutto), quindi semina un database
Come si crea uno script db: seed per precompilare i dati nelle mie tabelle?
Esiste un comando rake per cancellare i dati nelle tabelle del database?Reimposta il database (elimina tutto), quindi semina un database
Come si crea uno script db: seed per precompilare i dati nelle mie tabelle?
Io uso rake db:reset
che cade e quindi ricrea il database e include il file seeds.rb. http://guides.rubyonrails.org/migrations.html#resetting-the-database
È possibile eliminare tutto e ricreare database + semi con entrambi:
rake db:reset
: carichi da schema.rbrake db:drop db:create db:migrate db:seed
: carichi da migrazioniAssicurarsi di avere alcuna connessioni a db (rails server, sql client ..) o il db non verrà rilasciato.
schema.rb è un'istantanea dello stato attuale del database generato da:
rake db:schema:dump
Grazie per aver invitato le persone a disattivare tutti i server per assicurarsi che il DB venga rilasciato correttamente. – aardvarkk
Se non avete voglia di far cadere e ricreare tutta la baracca solo per ricaricare i dati, è possibile utilizzare MyModel.destroy_all
(o delete_all
) nel file seed.db per pulire una tabella prima che le istruzioni MyModel.create!(...)
caricino i dati. Quindi, è possibile ripetere l'operazione ripetutamente. (Ovviamente, questo riguarda solo le tabelle in cui hai caricato i dati, non il resto.)
C'è un "dirty hack" a https://stackoverflow.com/a/14957893/4553442 per aggiungere un'operazione di "de-seeding" simile alla migrazione su e giù. ..
intelligente, ricreare tutto da zero ogni volta ha preso a lungo per me – m02ph3u5
come di Rails 5, lo strumento a riga di comando è stato rake
con alias come rails
così ora
rails db:reset
invece di rake db:reset
funzionerà altrettanto bene
Nota a margine: se in produzione, potrebbe essere necessario riavviare il server dei binari affinché le modifiche vengano visualizzate/le pagine da aggiornare. – etusm