Rails 2.1 以降、タイプを :integer に設定し、:limit を 5 以上に設定してマイグレーションで新しいカラムを定義すると、MySQL データベースで実際に作成されるカラムのタイプは BigInt になります。それは最高です。
しかし、BigInt の主キーを持つテーブルを作成する方法がわかりません。
手がかりはありますか?
Rails 2.1 以降、タイプを :integer に設定し、:limit を 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'
このプラグインに出くわしました:まさにこの質問に答えているようです。