Нарушение уникального ключа в Rails с несколькими экземплярами - PullRequest
0 голосов
/ 20 ноября 2018

Я использую этот гем: https://github.com/rails/activerecord-session_store

Когда я запускаю несколько экземпляров приложения rails, я получаю следующую ошибку:

PG :: UniqueViolation: ОШИБКА:Двойное значение ключа нарушает уникальное ограничение "session_pkey". ПОДРОБНЕЕ: Key (id) = (3005307) уже существует.: INSERT INTO "session" ("session_id", "data", "creat_at", "updated_at") ЗНАЧЕНИЯ ($ 1, $ 2, $ 3, $ 4) ВОЗВРАЩЕНИЕ "id"

Столбец idсгенерировано последовательностью:

CREATE TABLE public.sessions
(
    id integer NOT NULL DEFAULT nextval('sessions_id_seq'::regclass),
    session_id character varying(255) COLLATE pg_catalog."default" NOT NULL,
    data text COLLATE pg_catalog."default",
    created_at timestamp without time zone,
    updated_at timestamp without time zone,
    CONSTRAINT sessions_pkey PRIMARY KEY (id)
)
WITH (
    OIDS = FALSE
)
TABLESPACE pg_default;

Учитывая это, разве последовательность не должна гарантировать уникальность, даже если вставки происходят из нескольких процессов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...