Rails Postgresql在列上将int更改为bignum

时间:2015-03-27 15:58:54

标签: ruby-on-rails postgresql integer bignum

我在表中最初设置为整数的字段。它是来自外部数据源的ID。现在使用多个数据源,一些ID值是非常大的整数,大于postgres 4bit默认值。更改表结构的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

使用striaght SQL的这种迁移对我来说很有用。感谢:https://gist.github.com/lxxdn/1e23067da51072a7e446

class ChangeForignIdsToBigInt < ActiveRecord::Migration

  def up
    execute <<-SQL
      ALTER TABLE events
      ALTER COLUMN eid TYPE bigint USING eid::bigint
    SQL
    execute <<-SQL
      ALTER TABLE venues
      ALTER COLUMN vid TYPE bigint USING vid::bigint
    SQL
  end

  def down
    raise ActiveRecord::IrreversibleMigration.new
  end

end