从 Rails 2.1 开始,如果你在迁移中定义一个类型设置为 :integer 且 :limit 设置为 5 或更多的新列,那么在 MySQL 数据库中实际创建的列将是 BigInt 类型。那很完美。
但我无法弄清楚如何使用 BigInt 主键创建表。
有什么线索吗?
从 Rails 2.1 开始,如果你在迁移中定义一个类型设置为 :integer 且 :limit 设置为 5 或更多的新列,那么在 MySQL 数据库中实际创建的列将是 BigInt 类型。那很完美。
但我无法弄清楚如何使用 BigInt 主键创建表。
有什么线索吗?
我只是偶然发现了这个插件:它似乎回答了这个问题。
这适用于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'