我试图学习新东西,并在自己的私人项目中使用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
(...)
答案 0 :(得分:0)
似乎这件事与该Gem无关,但与Rails迁移之外的其他正在运行Dev的Dev无关,并且没有让任何人知道。这在环境之间造成了一些混乱。