嗨,宝石创造了互斥的迁移吗?

时间:2019-05-23 17:21:04

标签: ruby-on-rails rails-migrations ahoy

我试图学习新东西,并在自己的私人项目中使用Ahoy gem。在进行在线研究时,我遇到了Rails 4.2和Ahoy 1.6的一个回购,一件事震惊了我。然后我开始谷歌搜索,看来这不仅仅是一个回购问题。

class CreateVisits < ActiveRecord::Migration
  def change
    create_table :visits, id: false do |t|
      t.uuid :id, default: nil, primary_key: true
(...)

为便于阅读,省略了其余代码

我错过了什么,还是那些互斥的行? (更不用说默认情况下主键为零了吗?)

我在本地进行了几乎相同的迁移(没有Ahoy gem,但表名已更改),并且看起来不错db / schema.rb(乍一看-没有错误),但是当我尝试创建新的时对象,我遇到了ActiveRecord::NotNullViolation: PG::NotNullViolation: ERROR: null value in column "id" violates not-null constraint错误

在我看来,我会写这样的东西来使其正常工作,还是我在这里错过了一些非常重要的东西,这些东西使我无法将对象持久存储在DB中?

class CreateVisits < ActiveRecord::Migration
  def change
    create_table :visits do |t|
      t.uuid :id, primary_key: true
(...)

1 个答案:

答案 0 :(得分:0)

似乎这件事与该Gem无关,但与Rails迁移之外的其他正在运行Dev的Dev无关,并且没有让任何人知道。这在环境之间造成了一些混乱。