Я новичок в ruby on rails, github и heroku. Теперь я делаю проект с фиксированным депозитом в этом проекте, я использую базу данных sqlite3 на моем локальном хосте и postgres в героку.
Я добавил поле int с типом данных string и изменил тип данных с string на integer. Наконец, я решил снова изменить его с integer на float. На моем локальном хосте он работает отлично. Но когда я пытаюсь запустить героку, он показывает, что рейк прерван.
heroku run rake db:migrate
он показывает следующее сообщение об ошибке
Running `rake db:migrate` attached to terminal... up, run.4356
Connecting to database specified by DATABASE_URL
Migrating to CreateFds (20140505120047)
Migrating to Changedatatypeforfd (20140506065307)
Migrating to AddMdToFds (20140506080333)
Migrating to AddIntToFds (20140506080404)
Migrating to Changedatatypeforint (20140506103001)
== Changedatatypeforint: migrating ======================
-- change_column(:fds, :int, :integer)
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:
PGError: ERROR: column "int" cannot be cast automatically to type integer
HINT: Specify a USING expression to perform the conversion.
: ALTER TABLE "fds" ALTER COLUMN "int" TYPE integer
мои файлы БД перечислены ниже
20140506080404_add_int_to_fds.rb
class AddIntToFds < ActiveRecord::Migration
def change
add_column :fds, :int, :string
end
end
20140506103001_changedatatypeforint.rb
class Changedatatypeforint < ActiveRecord::Migration
def up
change_column :fds, :int, :integer
end
def down
change_column :fds, :int, :string
end
end
20140508105541_rechangedatatypeforint.rb
class Rechangedatatypeforint < ActiveRecord::Migration
def up
change_column :fds, :int, :float
end
def down
change_column :fds, :int, :integer
end
end
Извините за мою оплошность. Пожалуйста, дайте мне решение. Заранее спасибо.