Rails Postgresql 将列上的 int 更改为 bignum

Rails Postgreql change int to bignum on column

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

这个使用 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