Rails 不会使用序列作为主键?
由于某种原因,我在 Rails 应用程序中使用的预先存在的 Postgres 架构没有为表的主键设置默认序列,因此每次想要创建新行时都需要查询它。
我的模型中有 set_sequence_name "seq_people_id"
,但是每当我调用 Person.new
时,Postgres 都会向我抱怨,因为 Rails 正在执行没有 ID 的插入查询(标记为架构中的 NOT NULL
)。
如何告诉 Rails 在创建新记录时始终使用该序列?
- Postgres 8.1.4
- ActiveRecord 3.0.3
- Rails 2.3.10
For one reason or another the pre-existing Postgres schema I'm using with my Rails app doesn't have a default sequence set for a table's primary key, so I am required to query for it every time I want to create a new row.
I have set_sequence_name "seq_people_id"
in my model, but whenever I call Person.new
Postgres complains to me because Rails is executing the insert query without the ID (which is marked as NOT NULL
in the schema).
How do I tell Rails to always use the sequence when creating new records?
- Postgres 8.1.4
- ActiveRecord 3.0.3
- Rails 2.3.10
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是我运行 psql 和 \d foo 时得到的结果:
我会检查以下内容:
Here's what I get when I run psql and \d foo:
I'd check the following: