【问题标题】:rails devise id generatorrails 设计 id 生成器
【发布时间】:2023-03-20 20:56:01
【问题描述】:

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

这是我的错误。

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

【问题讨论】:

标签: ruby-on-rails postgresql


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2012-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-12
    相关资源
    最近更新 更多