Rake db:migrate erreur “ne savent pas construire de tâche”
J'ai un tableau où j'ai utilisé entier sur un champ qui a besoin de décimales, donc je suis en train de créer une migration qui change le type de champ integer float/réel. Ma base de données est sqllite3 et je suis en utilisant rails3.
J'ai couru
rails generate migration ChangeMeasureColumnOnIngredients
pour créer de la migration initiale des fichiers, puis mise à jour de la classe de
classe ChangeMeasureColumnOnIngredients < ActiveRecord::Migration def self.jusqu' change_column :ingrédients :mesurer, :réel fin
J'ai couru rake db:migrate et elle revint bien.
Quand j'ai inséré une valeur par l'intermédiaire de mon application rails, il n'a pas de retour de la virgule. J'ai commencé à penser que de nombreux rails ne sait pas ce "réel", est un type de données, j'ai donc changé la migration vers
change_column :ingrédients :mesurer, :float
J'ai ensuite couru
rake db:migrate change_measure_column_on_ingredients
et maintenant, je reçois l'erreur suivante
c:\Ruby192\rails3rc>rake db:migrer change_measure_column_on_ingredients (dans c:/Ruby192/rails3rc) râteau avorté! N''t savent comment construire tâche 'change_measure_column_on_ingredients' C:/Ruby192/lib/ruby/1.9.1/rake.rb:1720:in[]' C:/Ruby192/lib/ruby/1.9.1/rake.rb:2040:in
invoke_task' C:/Ruby192/lib/ruby/1.9.1/rake.rb:2019:inblock (2 levels) in top_level' C:/Ruby192/lib/ruby/1.9.1/rake.rb:2019:in
chaque' C:/Ruby192/lib/ruby/1.9.1/rake.rb:2019:inblock in top_level' C:/Ruby192/lib/ruby/1.9.1/rake.rb:2058:in
standard_exception_handling' C:/Ruby192/lib/ruby/1.9.1/rake.rb:2013:intop_level' C:/Ruby192/lib/ruby/1.9.1/rake.rb:1992:in
exécuter' C:/Ruby192/bin/rake:31:in `
J'ai essayé de changer l' :float retour :vrai, mais j'ai toujours cette erreur.
quelqu'un peut-il me dire ce que je fais mal?
Je suis nouveau sur les rails et toujours en apprentissage.
OriginalL'auteur pedalpete | 2010-09-08
Vous devez vous connecter pour publier un commentaire.
De votre râteau appel a indiqué râteau pour créer la tâche
db:migrate
suivie par le groupe dechange_measure_column_on_ingredients
qui, clairement, n'est-ce pas que vous voulez que ce dernier n'est pas une tâche rake.Pour exécuter une migration spécifique, vous devez fournir les
VERSION
de la migration. C'est le nombre dans le nom de fichier qui vient avant votre nom pour la migration. Vous pouvez migrer vers le haut ou vers le bas comme ceci:Alternativement, vous pouvez prendre la dernière migration vers le bas puis vers le haut, de la manière suivante (vous pouvez également spécifier un
VERSION
pour cela):Il y a d'autres options. Si vous exécutez
rake --describe db:migrate
vous aurez plus d'informations.OriginalL'auteur Shadwell
Alors que dans ce cas précis de la stacktrace posté par OP montre l'erreur est d'essayer de faire deux tâches à la fois, j'ai trouvé cette page après une recherche sur google et vous voulez juste pour ajouter à la réponse pour l'avenir googlers:
essayer, y compris
RAILS_ENV=development
ouRAILS_ENV=test
qu'il fixe pour moi.OriginalL'auteur m__
assurez-vous que votre commande est
rake db:migrate
. Attention à il n'y a pas d'espace entre les:
etmigrate
OriginalL'auteur gongmingqm10