如何使用Rails2.1和MySQL定义BigInt主键?

如何使用Rails2.1和MySQL定义BigInt主键?,mysql,ruby-on-rails,biginteger,Mysql,Ruby On Rails,Biginteger,从Rails 2.1开始,如果在迁移中定义一个新列,类型设置为:integer,限制设置为5或更多,那么在MySQL数据库中实际创建的列将是BigInt类型。太好了 但我不知道如何使用BigInt主键创建表 有什么线索吗?我刚刚偶然发现:它似乎回答了这个问题。这在rails 3中有效,但不确定它是否在rails 2中有效 在我的整个应用程序中,我需要我的主键是bigint unsigned。 我最后做的是把我的config/environment.rb require 'active_recor

从Rails 2.1开始,如果在迁移中定义一个新列,类型设置为:integer,限制设置为5或更多,那么在MySQL数据库中实际创建的列将是BigInt类型。太好了

但我不知道如何使用BigInt主键创建表


有什么线索吗?

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

这在rails 3中有效,但不确定它是否在rails 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作为bigint。 当我引用另一个表时,我执行以下操作

t.column :product_id, 'BIGINT UNSIGNED'

在我的Rails 2.3.9应用程序中,使用:limit大于5来定义列似乎不起作用。你知道问题出在哪里吗?