生成具有ID序列定义的零ID,为什么



i有一个名为async_data的表,该表也具有ID列自动增量定义。但是在生产中,我看到一些插入查询未能说

PG::NotNullViolation: ERROR: null value in column "id" violates not-null constraint

rails迁移文件

class CreateAsyncData < ActiveRecord::Migration[5.0]
  def change
    create_table :async_data do |t|
      t.integer :request_id
      t.integer :sourced_contact_id
      t.integer :data_source_id
      t.boolean :is_enriched
      t.column  :requested_params, :json
      t.text :q
      t.datetime :fetched_at
      t.timestamps
    end
  end
end
CREATE TABLE public.async_data (
        id integer NOT NULL,
        request_id integer,
        sourced_contact_id integer,
        data_source_id integer,
        is_enriched boolean DEFAULT false,
        requested_params json,
        fetched_at timestamp without time zone,
        created_at timestamp without time zone NOT NULL,
        updated_at timestamp without time zone NOT NULL,
        q text,
        is_processed boolean DEFAULT false NOT NULL,
        is_data_pushed boolean DEFAULT false NOT NULL
    );

d async_data;

Table "public.async_data"
      Column       |            Type             | Collation | Nullable |                      Default                       
-------------------+-----------------------------+-----------+----------+----------------------------------------------------
 id                | integer                     |           | not null | nextval('async_data_id_seq'::regclass)
 request_id        | integer                     |           |          | 
 source_company_id | integer                     |           |          | 
 data_source_id    | integer                     |           |          | 
 is_enriched       | boolean                     |           |          | 
 requested_params  | json                        |           |          | 
 q                 | text                        |           |          | 
 fetched_at        | timestamp without time zone |           |          | 
 created_at        | timestamp without time zone |           | not null | 
 updated_at        | timestamp without time zone |           | not null | 
Indexes:
    "async_data_pkey" PRIMARY KEY, btree (id)
--
-- Name: async_data_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE public.async_data_id_seq
    AS integer
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;

我想在开发环境中重新生产相同的产品,并想知道为什么生成ID nil。

我只是遇到了相同的问题,不确定为什么要在序列创建上丢下错误,看起来它不应该具有" integer"

我不确定这是否与数据库客户端版本有关,而只是删除" Integer"是我的修复。

相关内容

  • 没有找到相关文章

最新更新