【问题标题】:Increase ActiveModel ID Range to 8 byte将 ActiveModel ID 范围增加到 8 字节
【发布时间】:2016-09-02 13:47:41
【问题描述】:

我已经digging around 了解如何让我所有新的和后续的模型 ID 限制为 8 个字节。答案显示了添加新表列时的方法;我希望每当我创建一个新的Model 时,它都会自动拥有一个 8 字节的limit。可能吗?

创建新模型时,我得到:

ActiveModel::RangeError: 36565651767 is out of range for ActiveModel::Type::Integer with limit 4

在哪里将此限制从 4 更改为 8?

【问题讨论】:

    标签: ruby-on-rails postgresql ruby-on-rails-5 activemodel


    【解决方案1】:

    一个possible duplicate 但是因为会有错误:

    您不能重新定义主键列“id”。要定义自定义主键,请将 { id: false } 传递给 create_table。

    这意味着您的表格应如下所示:

    class MyModels < ActiveRecord::Migration[5.0]
      def change
        create_table :my_models, {id: false } do |t|
          t.column   :id, limit: 8
          ...
         end
      end
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-01
      • 2015-07-27
      • 1970-01-01
      • 2022-11-14
      相关资源
      最近更新 更多