Rails:如何使用BIGINT作为主键

时间:2017-03-08 14:25:26

标签: ruby-on-rails database primary-key ruby-on-rails-5 biginteger

我已经阅读了很多文章,讨论如何在Rails中使用BIGINT作为主键,但似乎所有文章都已过时。

如何将BIGINT用于我的主键,最好只在全局设置。 (我知道性能上的差异)

我尝试过的事情:

2 个答案:

答案 0 :(得分:5)

如果您的应用是rails '>= 5.1'原生内置的,那么您的主键应该已经是BIGINT。通过"本地建造"我的意思是您的迁移最初是使用该Rails版本运行的(而不是在< 5.1中运行它们,然后再更新gem)

如果它们还不是BIGINT,您可以使用以下源代码中的迁移操作,为方便起见粘贴在此处:

change_column :your_table_name, :id, :bigint

来源:http://www.mccartie.com/2016/12/05/rails-5.1.html

答案 1 :(得分:1)

您是否在迁移文件中尝试此代码?

  def change
    create_table :table_name, id: false do |t|
      t.bigint :id, null: false
      t.index :id, name: "pk_table_name", unique: true
    end
  end

在模特中:

class ModelName < ApplicationRecord
  self.primary_key = :id
end