【问题标题】:Ahoy gem created mutually exclusive migration?Ahoy gem 创建了互斥迁移?
【发布时间】: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


【解决方案1】:

似乎这件事与此 Gem 无关,而是与其他开发人员在 Rails 迁移之外运行迁移并且不让任何人知道。这在环境之间造成了一些混乱。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-15
    • 2015-09-26
    • 2021-06-30
    • 2012-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多