Rake db: Migrationsfehler "weiß nicht, wie man eine Aufgabe erstellt"
Ich habe eine Tabelle, in der ich eine Ganzzahl für ein Feld verwendet habe, für das Dezimalstellen erforderlich sind. Daher versuche ich, eine Migration zu erstellen, bei der der Feldtyp von Ganzzahl in Gleitkommazahl / Real geändert wird. Meine Datenbank ist sqllite3 und ich verwende Rails3.
Ich rannt
rails generate migration ChangeMeasureColumnOnIngredients
zum Erstellen der anfänglichen Migrationsdateien und Aktualisieren der Klasse auf
class ChangeMeasureColumnOnIngredients < ActiveRecord::Migration def self.up change_column :ingredients, :measure, :real end
Ich habe rake db: migrate ausgeführt und es ist in Ordnung.
Wenn ich einen Wert über meine Rails-App eingegeben habe, wurde die Dezimalstelle nicht zurückgegeben. Ich fing an zu glauben, dass viele Rails nicht wissen, was "real" als Datentyp ist, also habe ich die Migration auf @ geänder
change_column :ingredients, :measure, :float
Ich lief dann
rake db:migrate change_measure_column_on_ingredientsund jetzt bekomme ich den folgenden Fehler
c:\Ruby192\rails3rc>rake db:migrate change_measure_column_on_ingredients (in c:/Ruby192/rails3rc) rake aborted! Don't know how to build task '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
each' 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
run' C:/Ruby192/bin/rake:31:in `'
Ich habe versucht, das: float zurück zu: real zu ändern, aber ich erhalte immer noch diesen Fehler.
kann mir jemand sagen, was ich falsch mache? Ich bin neu in Rails und lerne noch.