繁体   English   中英

rails 设计 id 生成器

[英]rails devise id generator

我有一个带有 postgress 数据库的 rails web 应用程序,我使用 devise 进行用户注册和登录。 我从一个 db 更改为一个新的 db,并将我的旧用户移动到新的 db。 老用户可以登录,新用户不能登录。 当新用户注册时,设计将它们发送到用户路径,我没有收到错误消息。 除了“500 服务器错误”之外,没有新用户注册。 当我删除整个数据库并手动创建新用户时,我能够创建新用户。 这让我知道,我的问题出在哪里,我认为是用户 ID 序列问题。
我如何解决这个问题,让新用户能够注册,并保留我的旧用户数据

这是我的错误。

ActiveRecord::RecordNotUnique (PG::UniqueViolation: ERROR:  duplicate key value violates unique constraint "users_pkey"
DETAIL:  Key (id)=(2) already exists.

当您将用户从一个数据库移动到另一个数据库时,您可能没有更新 id 序列

在 psql 控制台中试试这个,你可以通过在项目中输入rails db轻松打开它。 它将找出用户表的最后一个 ID,然后将序列设置为下一个值。

SELECT setval('users_id_seq', COALESCE((SELECT MAX(id)+1 FROM users), 1), false);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM