2

Rails 2.1 以降、タイプを :integer に設定し、:limit を 5 以上に設定してマイグレーションで新しいカラムを定義すると、MySQL データベースで実際に作成されるカラムのタイプは BigInt になります。それは最高です。

しかし、BigInt の主キーを持つテーブルを作成する方法がわかりません。

手がかりはありますか?

4

2 に答える 2

1

これは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'
于 2011-03-16T15:58:15.057 に答える
1

このプラグインに出くわしました:まさにこの質問に答えているようです。

于 2008-11-24T00:06:26.030 に答える