【问题标题】:How can I define a BigInt primary key with Rails 2.1 and MySQL?如何使用 Rails 2.1 和 MySQL 定义 BigInt 主键?
【发布时间】:2008-11-23 23:58:04
【问题描述】:

从 Rails 2.1 开始,如果您在迁移中定义类型设置为 :integer 且 :limit 设置为 5 或更大的新列,则实际在 MySQL 数据库中创建的列将是 BigInt 类型。太完美了。

但我不知道如何使用 BigInt 主键创建表。

有什么线索吗?

【问题讨论】:

  • 用 :limit 超过 5 定义列似乎在我的 Rails 2.3.9 应用程序中不起作用。问题可能出在哪里?

标签: mysql ruby-on-rails biginteger


【解决方案1】:

我刚刚偶然发现this plugin:它似乎回答了这个问题。

【讨论】:

    【解决方案2】:

    这适用于 rails 3 不确定是否适用于 rails 2。

    在我的整个应用程序中,我需要我的主键是 bigint 无符号的。 我最终做的是放入我的 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'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-07
      • 1970-01-01
      • 2011-08-18
      • 1970-01-01
      • 2011-09-14
      相关资源
      最近更新 更多