由于某种原因,我在Rails应用程序中使用的预先存在的Postgres模式没有为表的主键设置默认序列,因此每次我想创建时都需要查询它新的一行。
我的模型中有set_sequence_name "seq_people_id"
,但每当我调用Person.new
时,Postgres都会向我抱怨,因为Rails正在执行不带ID的插入查询(在模式中标记为NOT NULL
)。
如何在创建新记录时告诉Rails始终使用序列?
答案 0 :(得分:1)
这是我运行psql和\ d foo时得到的结果:
Table "public.foo"
Column | Type | Modifiers
--------+---------------+------------------------------------------------------
id | integer | not null default nextval('foo_id_seq'::regclass)
(etc.)
我会检查以下内容: