lors de la mise à niveau vers la version 3.1.0.beta4, j’ai rencontré l’erreur suivante :
I, [2023-04-19T00:02:26.057232 #1] INFO -- : cd /var/www/discourse & su discourse -c 'LOAD_PLUGINS=0 bundle exec rake plugin:pull_compatible_all'
I, [2023-04-19T00:02:27.340128 #1] INFO -- : discourse-adplugin est déjà à la dernière version compatible
discourse-cakeday est déjà à la dernière version compatible
discourse-formatting-toolbar est déjà à la dernière version compatible
discourse-whos-online est déjà à la dernière version compatible
docker_manager est déjà à la dernière version compatible
vbulletin-bbcode est déjà à la dernière version compatible
I, [2023-04-19T00:02:27.340368 #1] INFO -- : cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate'
2023-04-19 00:02:30.080 UTC [634] discourse@discourse ERROR: la clé en double viole la contrainte d'unicité « index_users_on_username »
2023-04-19 00:02:30.080 UTC [634] discourse@discourse DETAIL: La clé (username)=(xxx) existe déjà.
2023-04-19 00:02:30.080 UTC [634] discourse@discourse STATEMENT: UPDATE users SET password_algorithm = '$pbkdf2-sha256$i=64000,l=32$'
WHERE id IN (
SELECT id FROM users
WHERE users.password_hash IS NOT NULL
AND users.password_algorithm IS NULL
LIMIT 5000
)
rake aborted!
StandardError: Une erreur s'est produite, toutes les migrations ultérieures ont été annulées :
PG::UniqueViolation: ERROR: la clé en double viole la contrainte d'unicité « index_users_on_username »
DETAIL: La clé (username)=(xxx) existe déjà.
Après avoir corrigé les doublons d’utilisateurs, j’obtiens à nouveau de nouveaux doublons.
discourse=# REINDEX TABLE users;
ERROR: impossible de créer l'index unique « index_users_on_username_lower »
DETAIL: La clé (username_lower)=(mhm) est dupliquée.
discourse=# REINDEX TABLE users;
ERROR: impossible de créer l'index unique « index_users_on_username_lower »
DETAIL: La clé (username_lower)=(ahmedhafez) est dupliquée.
CONTEXT: parallel worker
discourse=# REINDEX TABLE users;
ERROR: impossible de créer l'index unique « index_users_on_username_lower »
DETAIL: La clé (username_lower)=(hany) est dupliquée.
discourse=# REINDEX TABLE users;
ERROR: impossible de créer l'index unique « index_users_on_username_lower »
DETAIL: La clé (username_lower)=(eng_ali) est dupliquée.
CONTEXT: parallel worker
discourse=# REINDEX TABLE users;
ERROR: impossible de créer l'index unique « index_users_on_username_lower »
DETAIL: La clé (username_lower)=(saad_saad) est dupliquée.
discourse=# REINDEX TABLE users;
ERROR: impossible de créer l'index unique « index_users_on_username_lower »
DETAIL: La clé (username_lower)=(eng_ali) est dupliquée.
CONTEXT: parallel worker
discourse=# REINDEX TABLE users;
ERROR: impossible de créer l'index unique « index_users_on_username_lower »
DETAIL: La clé (username_lower)=(mostafa11) est dupliquée.
CONTEXT: parallel worker