mysql - 在 32 位 Rails 应用程序上将 32 位 PK 更改为 BIGINT

标签 mysql ruby-on-rails ruby ruby-on-rails-3 32bit-64bit

我有一个在 32 位 Ubuntu 上运行的 Rails 3.2.18 应用程序,使用 MySQL 作为后端。我的一张表的 PK 是一个 32 位整数,最近已经达到最大值。我知道你可以在 MySQL 中将 PK 从 int 更改为 BIGINT,MySQL 将处理转换。我的问题是 Ruby/Rails 是否能够处理新的、更大的 id 字段,因为它在 32 位平台上运行?

最佳答案

INTBIGINT 的使用不受 32 位平台的限制,两者都完全支持。尽管出于多种原因,使用 64 位操作系统是一个不错的计划,但这并不是一个硬性要求。

创建一个迁移来调整列类型,应该没问题,但一定要更新引用此特定 ID 值的所有列。换句话说,遵循任何 has_many 类型关联,并确保它们也使用 BIGINT

关于mysql - 在 32 位 Rails 应用程序上将 32 位 PK 更改为 BIGINT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46553082/

相关文章:

java - 如何将数据库中的问题存储在 servlet 上并显示在 html 页面上?测验申请

python - 什么是 Ruby 中的 Python 文档字符串?

ruby-on-rails - 从 Rails 中的 xml 渲染中排除一些 ActiveRecord 属性

ruby - 更改 mongoid 关系的名称 (embeds_...,belongs_to,has_...)

ruby - 如何使用 Ruby 的 RGL 或 GRATR 构建加权图来执行 Dijkstra 算法?

mysql - Django 查询集突然不返回所有对象

php - 在 PHP 查询中打乱 MySQL 行

mysql - 如何合并多个时间跨度

ruby-on-rails - Windows 7 上的 Ruby on Rails RMagick

ruby-on-rails - 使用 paper_trail gem 如何跳过零和空白之间的更改?