Rails Migration Error w/ Postgres when pushing to Heroku

dougiebuckets picture dougiebuckets · Sep 26, 2012 · Viewed 7.6k times · Source

I'm trying to perform the following up migration to change the column "number" in the "tweet" model's table

class ChangeDataTypeForTweetsNumber < ActiveRecord::Migration
  def up
    change_column :tweets do |t|
      t.change :number, :integer
    end
  end

  def down
    change_table :tweets do |t|
      t.change :number, :string
    end
  end
end

Upon performing the the following up migration to heroku....

heroku rake db:migrate:up VERSION=20120925211232

I get the following error

    PG::Error: ERROR:  column "number" cannot be cast to type integer
: ALTER TABLE "tweets" ALTER COLUMN "number" TYPE integer

Any thoughts you have would be very much appreciated.

Thanks everyone.

Answer

riley picture riley · Oct 16, 2013

Same as above but a little bit more concise:

change_column :yourtable, :column_to_change, 'integer USING CAST("column_to_change" AS integer)'