【问题标题】:How to define an application wide ids with Rails 5 on PostgreSQL 9.4.8如何在 PostgreSQL 9.4.8 上使用 Rails 5 定义应用程序范围的 ID
【发布时间】:2016-11-15 16:41:04
【问题描述】:

我以为我在这里找到了解决方案:application-wide sequence 自 Rails 5 以来,行为似乎发生了变化。

我定义了一个特定的序列来处理我的对象 ID:

class BusinessRule < ActiveRecord::Base

### id generation
  self.sequence_name = "objects_seq"

迁移(在我编辑模型之前运行)为业务规则生成了一个序列:

business_rules_id_seq

并且这个序列在 business_rules.id 列的 COLUMN_DEF 属性中被引用。

尽管有 self.sequence_name 指令,ActiveRecord 仍然使用常规序列 business_rules_id_seq。删除序列不会改变任何事情。

你能帮忙吗?

【问题讨论】:

    标签: ruby-on-rails activerecord rails-activerecord ruby-on-rails-5


    【解决方案1】:

    我将“迁移,(在我编辑模型之前运行)”解释如下:

    1. 您运行迁移来创建表
    2. 然后您使用sequence_name 更新了模型

    如果这是正确的,我怀疑你需要要么

    1. 必须在迁移之前在模型中添加序列,或者
    2. 看这个问题explicitly setting sequences on migrations

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-24
      • 1970-01-01
      • 2014-08-27
      • 1970-01-01
      • 2013-10-12
      • 2021-10-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多