Как я могу определить первичный ключ BigInt с Rails 2.1 и MySQL? - PullRequest
2 голосов
/ 24 ноября 2008

Начиная с Rails 2.1, если вы определите новый столбец в миграции с типом, установленным в: integer, и значением: limit, равным 5 или более, столбец, фактически созданный в вашей базе данных MySQL, будет иметь тип BigInt. Это прекрасно.

Но я не могу понять, как создать таблицу с первичным ключом BigInt.

Какие-нибудь подсказки?

Ответы [ 2 ]

1 голос
/ 16 марта 2011

Это работает в рельсах 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

Это позволяет рельсам автоматически создавать идентификаторы как BigInts. Когда я делаю ссылку из другой таблицы, я делаю следующее

t.column :product_id, 'BIGINT UNSIGNED'
1 голос
/ 24 ноября 2008

Я только что наткнулся на этот плагин : кажется, он отвечает именно на этот вопрос.

...