J’ai tenté de mettre à jour le forum Discourse vers la dernière version 2.2.0.beta5 sur l’instance de staging, mais cela a échoué.
L’erreur est la suivante :
I, INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
rake aborted!
StandardError: Une erreur s'est produite, cette migration et toutes les suivantes ont été annulées :
PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_polls_on_post_id_and_name"
DETAIL: Key (post_id, name)=(662593, poll) already exists.
Je me suis connecté à la base de données PostgreSQL et j'ai vérifié qu'il n'y avait aucune valeur dans la table polls, il est donc étrange que nous recevions l'erreur : "Key (post_id, name)=(662593, poll) already exists." :
=> SELECT * FROM polls;
id | post_id | name | close_at | type | status | results | visibility | min | max | step | anonymous_voters | created_at | updated_at
----+---------+------+----------+------+--------+---------+------------+-----+-----+------+------------------+------------+------------
(0 rows)
=> \d polls_id_seq
Sequence "public.polls_id_seq"
Column | Type | Value
---------------+---------+---------------------
sequence_name | name | polls_id_seq
last_value | bigint | 4524
start_value | bigint | 1
increment_by | bigint | 1
max_value | bigint | 9223372036854775807
min_value | bigint | 1
cache_value | bigint | 1
log_cnt | bigint | 24
is_cycled | boolean | f
is_called | boolean | t
Owned by: public.polls.id
=> select count(id),max(id) from polls;
count | max
-------+-----
0 |
(1 row)
Pourriez-vous, s’il vous plaît, m’aider à résoudre ce problème ?
En raison de cette erreur, nous ne pouvons pas mettre à jour le forum Discourse.
Can someone from development team take a look to this question ?
We are blocked with update of Discourse forum to the latest version, because of this error.
And also we cannot install additional plugin, as docker container is not compiled and as a result is not running.
It turns out that the problem was that the poll had been duplicated in a quote block, and the migration didn’t know to ignore it. It was in a PM, apparently as an example of how polls worked. I deleted the duplicate and the migration ran fine.