データ型 bigint の主キー uid を持つ users テーブルがあります。
uid = 100000349053153 のユーザーを追加しようとすると、「Minteger out of range」というエラーが表示される理由がわかりません。
これは機能するはずです(ドキュメントによると:http://www.postgresql.org/docs/8.3/static/datatype.html)
データ型 bigint の主キー uid を持つ users テーブルがあります。
uid = 100000349053153 のユーザーを追加しようとすると、「Minteger out of range」というエラーが表示される理由がわかりません。
これは機能するはずです(ドキュメントによると:http://www.postgresql.org/docs/8.3/static/datatype.html)
ニコラスとアダムに感謝します。
この問題は、私の混乱した Rails の使用に関連していました。
rake db:reset が移行ファイルからデータベースを再作成すると考えるのは間違いでした。私は正しい移行ファイルを持っていましたが、rake db:reset は schema.rb によって提供された間違った情報を使用していました。
Facebook ID を保存する場合は、(移行内で) 以下を使用します。
t.integer :uid, :limit => 8
インデックスを追加することもできます:
add_index :users, :uid, :unique => true
また、Rails データベースを最初から再作成する場合は、次を使用します。
rake db:drop
rake db:create
rake db:migrate
FWIW以下は私にとってはうまくいきます:
CREATE TABLE bigintexample
(
id bigint,
CONSTRAINT pk_bigintexample_id PRIMARY KEY (id)
);
INSERT INTO bigintexample (id) VALUES (100000349053153);