从Rails 2.1开始,如果在迁移中定义一个新列,其类型设置为:integer且:limit设置为5或更多,则实际在MySQL数据库中创建的列将是BigInt类型。那是完美的。
但我无法弄清楚如何使用BigInt主键创建表。
任何线索?
答案 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'