Existe-t-il une commande rake pour effacer les données des tables de la base de données?
Comment créer un script db: seed pour préremplir des données dans mes tables?
ruby-on-rails
database
seeding
Blankman
la source
la source
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:
la source
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
(oudelete_all
) dans le fichier seed.db pour nettoyer une table avant que vosMyModel.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 ...
la source
Depuis Rails 5, l'
rake
outil de ligne de commande a été aliasé commerails
tel maintenantrails db:reset
au lieu derake db:reset
fonctionnera aussi bien
la source
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 .
la source