如何使用Rails 2.1和MySQL定义BigInt主键?

时间:2008-11-23 23:58:04

标签: mysql ruby-on-rails biginteger

从Rails 2.1开始,如果在迁移中定义一个新列,其类型设置为:integer且:limit设置为5或更多,则实际在MySQL数据库中创建的列将是BigInt类型。那是完美的。

但我无法弄清楚如何使用BigInt主键创建表。

任何线索?

2 个答案:

答案 0 :(得分:1)

我偶然发现了this plugin:它似乎回答了这个问题。

答案 1 :(得分:1)

这适用于导轨3,不确定它是否适用于导轨2。

在我的应用程序中,我需要将主键设为bigint unsigned。 我最终做的是放入我的config / environment.rb

require 'active_record/connection_adapters/mysql2_adapter'
ActiveRecord::ConnectionAdapters::Mysql2Adapter::NATIVE_DATABASE_TYPES[:primary_key] =
  "BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY".freeze

这让rails自动创建id作为BigInts。 当我从另一张桌子做参考时,我会做以下

t.column :product_id, 'BIGINT UNSIGNED'