2

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

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

有什么线索吗?

4

2 回答 2

1

我只是偶然发现了这个插件:它似乎回答了这个问题。

于 2008-11-24T00:06:26.030 回答
1

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

在我的整个应用程序中,我需要我的主键是 bigint 无符号的。我最终做的是把我的 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'
于 2011-03-16T15:58:15.057 回答