如何使用 Rails 2.1 和 MySQL 定义 BigInt 主键?

发布于 2024-07-09 00:42:01 字数 167 浏览 6 评论 0原文

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

但我不知道如何创建具有 BigInt 主键的表。

有什么线索吗?

Since Rails 2.1, if you define a new column in a migration with the type set to :integer and the :limit set to 5 or more, the column actually created in your MySQL database will be of type BigInt. That's perfect.

But I cannot figure out how to create a table with a BigInt primary key.

Any clues?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

遗忘曾经 2024-07-16 00:42:01

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

I just stumbled upon this plugin: it seems to answer this very question.

与之呼应 2024-07-16 00:42:01

这适用于 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作为BigInts。
当我从另一个表中进行引用时,我会执行以下操作

t.column :product_id, 'BIGINT UNSIGNED'

This works in rails 3 not sure if it would work in rails 2.

Throughout my app I needed my primary keys to be bigint unsigned.
What I ended up doing was putting in my 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

This lets rails automatically create id's as BigInts.
When I do a refrence from another table I do the following

t.column :product_id, 'BIGINT UNSIGNED'
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文