Réponses:
J'utilise rake db:reset
qui supprime, puis recrée la base de données et inclut votre fichier seeds.rb.
http://guides.rubyonrails.org/migrations.html#resetting-the-database
Vous pouvez tout supprimer et recréer la base de données + les graines avec les deux:
rake db:reset
: charges depuis schema.rbrake db:drop db:create db:migrate db:seed
: charges de migrationsAssurez-vous que vous n'avez aucune connexion à db (serveur rails, client sql ..) sinon la base de données ne tombera pas.
schema.rb est un instantané de l'état actuel de votre base de données généré par:
rake db:schema:dump
Si vous n'avez pas envie de supprimer et de recréer le shebang entier juste pour recharger vos données, vous pouvez utiliser MyModel.destroy_all
(ou delete_all
) dans le fichier seed.db pour nettoyer une table avant que vos MyModel.create!(...)
instructions ne chargent les données. Ensuite, vous pouvez refaire l' db:seed
opération encore et encore. (Évidemment, cela n'affecte que les tables dans lesquelles vous avez chargé des données, pas le reste.)
Il y a un "sale hack" sur https://stackoverflow.com/a/14957893/4553442 pour ajouter une opération de "désensemencement" similaire à la migration de haut en bas ...
Depuis Rails 5, l' rake
outil de ligne de commande a été aliasé comme rails
tel maintenant
rails db:reset
au lieu de rake db:reset
fonctionnera aussi bien
Vous pouvez utiliser rake db:reset
lorsque vous souhaitez supprimer la base de données locale et recommencer avec les données chargées à partir dedb/seeds.rb
. C'est une commande utile lorsque vous êtes encore en train de déterminer votre schéma et que vous devez souvent ajouter des champs aux modèles existants.
Une fois la commande de réinitialisation utilisée, elle effectuera les opérations suivantes: Supprimer la base de données: rake db:drop
charger le schéma: rake db:schema:load
amorcer les données:rake db:seed
Mais si vous souhaitez supprimer complètement votre base de données, vous pouvez utiliser rake db:drop
. La suppression de la base de données supprimera également les conflits de schéma ou les données incorrectes. Si vous souhaitez conserver les données dont vous disposez, assurez-vous de les sauvegarder avant d'exécuter cette commande.
Ceci est un article détaillé sur les commandes les plus importantes de la base de données rake .