Rails:如何迁移我的表以使用bigint主键?

时间:2014-01-26 22:10:43

标签: ruby-on-rails postgresql

我正在使用PostgreSQL和Rails,我有一个带有主键的表。我很确定它会像我使用它一样耗尽uids(最终数十亿次插入)。有什么办法可以将int主键转换为bigint吗?我只看到SO上的解决方案涉及使用bigint主键创建一个新表。

1 个答案:

答案 0 :(得分:3)

你有一些选择。其中一个是使用原始SQL:

class TheMigration < ActiveRecord::Migration
    def up
        execute "alter table .....;" 
    end

    def down
        raise ActiveRecord::IrreversibleMigration
    end
end

但你可以使用:limit选项(http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/TableDefinition.html#method-i-column) - 这可以让你定义整数类型的字节数:

t.some_col :integer, limit: 8

https://moeffju.net/blog/using-bigint-columns-in-rails-migrations