【发布时间】:2019-05-23 17:21:03
【问题描述】:
我尝试学习新东西并将 Ahoy gem 用于我的私人项目。在进行在线研究时,我遇到了一个使用 Rails 4.2 和 Ahoy 1.6 的 repo,一件事情让我印象深刻。然后我开始用谷歌搜索,似乎这不仅仅是一个单一的回购问题。
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 错误
在我看来,我会写这样的东西来让它工作,还是我在这里遗漏了一些非常重要的东西,阻止我在数据库中持久化一个对象?
class CreateVisits < ActiveRecord::Migration
def change
create_table :visits do |t|
t.uuid :id, primary_key: true
(...)
【问题讨论】:
-
你连接的是什么类型的数据库?
-
同样的情况发生在 PG 和 MySQL 上
标签: ruby-on-rails rails-migrations ahoy