2013-01-22 2 views
26

Une partie de mon seeds.rb charge beaucoup de données dans la base de données. Je veux pouvoir charger ces données de manière sélective. Par exemple.Puis-je passer un argument à rake db: seed?

$ rake db:seed 

ou

$rake db:seed[0] 

serait tout simplement charger les données nécessaires pour gérer le site, tandis que

$ rake db:seed[1] 

chargerait mon grand fichier de données dans la base de données ainsi. Est-ce possible? Comment puis-je y arriver? Si non, quelqu'un peut-il penser à un moyen de faire ce que j'essaie de faire?

+0

Voir aussi http://stackoverflow.com/questions/ 825748/how-do-pass-command-line-arguments-to-a-rake-task? Rq = 1 –

Répondre

43

Les arguments de rake sont douloureux à transmettre, malheureusement (et db:seed ne passe pas ses arguments, malgré tout).

Votre meilleur pari est d'utiliser des variables d'environnement pour passer vos args supplémentaires grâce à:

rake db:seed minimal=yes 

et

unless ENV["minimal"] 
    # do stuff 

etc

+0

Je vais essayer ça très rapidement. Merci! – Chris

+2

Beauté. Travaillé parfaitement. Merci. – Chris

Questions connexes