У меня есть таблица, в которой я использовал целое число в поле, которое требует десятичных знаков, поэтому я пытаюсь создать миграцию, которая меняет тип поля с целого на float / real. Моя база данных - sqllite3, и я использую rails3.
Я побежал
rails generate migration ChangeMeasureColumnOnIngredients
для создания начальных файлов миграции, затем обновил класс до
class ChangeMeasureColumnOnIngredients < ActiveRecord::Migration
def self.up
change_column :ingredients, :measure, :real
end
Я запустил rake db: migrate, и он вернулся нормально.
Когда я вставил значение через приложение rails, оно не вернуло десятичное число. Я начал думать, что многие рельсы не знают, что такое «реальный» как тип данных, поэтому я изменил миграцию на
change_column :ingredients, :measure, :float
Я тогда побежал
rake db:migrate change_measure_column_on_ingredients
и теперь я получаю следующую ошибку
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 <code>[]'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:2040:in</code>invoke_task'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:2019:in <code>block (2 levels) in top_level'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:2019:in</code>each'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:2019:in <code>block in top_level'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:2058:in</code>standard_exception_handling'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:2013:in <code>top_level'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:1992:in</code>run'
C:/Ruby192/bin/rake:31:in `'
Я попытался изменить: float обратно на: real, но я все еще получаю эту ошибку.
Может кто-нибудь сказать мне, что я делаю не так?
Я новичок в рельсах и все еще учусь.