Problème de restauration : la fonction « mirror_topic_timers_topic_id » existe déjà avec les mêmes types d'arguments

J’essaie de restaurer une base de données de production de 04dbc622ab1e0197d16703ba47cf005ec93697ee vers un site de développement f608e0cd7e7d4785b3ecb401999cfb837cfbe783

J’obtiens ces erreurs :

Échec de la migration de la base de données.                                                                                                                           [90/9045]
Ignoré db/schema_cache.yml car il a expiré. La version actuelle du schéma est 20250724012518, mais celle du fichier de cache du schéma est 20250916082012.
rake aborted!
StandardError: Une erreur s'est produite, celle-ci et toutes les migrations ultérieures sont annulées : (StandardError)

PG::DuplicateFunction: ERREUR :  la fonction « mirror_topic_timers_topic_id » existe déjà avec les mêmes types d'arguments
/home/pfaffman/src/discourse-repos/discourse/lib/migration/safe_migrate.rb:107:in `async_exec'
/home/pfaffman/src/discourse-repos/discourse/db/migrate/20250902014817_add_timerable_id_to_topic_timer.rb:15:in `up'
/home/pfaffman/src/discourse-repos/discourse/lib/freedom_patches/schema_migration_details.rb:8:in `block in exec_migration'
/home/pfaffman/src/discourse-repos/discourse/lib/freedom_patches/schema_migration_details.rb:8:in `exec_migration'
/home/pfaffman/src/discourse-repos/discourse/lib/migration/safe_migrate.rb:28:in `migrate'
/home/pfaffman/src/discourse-repos/discourse/lib/migration/safe_migrate.rb:53:in `migrate'
/home/pfaffman/src/discourse-repos/discourse/lib/tasks/db.rake:267:in `block (2 levels) in <main>'
/home/pfaffman/src/discourse-repos/discourse/lib/distributed_mutex.rb:53:in `block in synchronize'
/home/pfaffman/src/discourse-repos/discourse/lib/distributed_mutex.rb:49:in `synchronize'
/home/pfaffman/src/discourse-repos/discourse/lib/distributed_mutex.rb:49:in `synchronize'
/home/pfaffman/src/discourse-repos/discourse/lib/distributed_mutex.rb:34:in `synchronize'
/home/pfaffman/src/discourse-repos/discourse/lib/tasks/db.rake:242:in `block in <main>'

Caused by:
ActiveRecord::StatementInvalid: PG::DuplicateFunction: ERREUR :  la fonction « mirror_topic_timers_topic_id » existe déjà avec les mêmes types d'arguments (ActiveRecord::S
ntatementInvalid)
/home/pfaffman/src/discourse-repos/discourse/lib/migration/safe_migrate.rb:107:in `async_exec'
/home/pfaffman/src/discourse-repos/discourse/db/migrate/20250902014817_add_timerable_id_to_topic_timer.rb:15:in `up'
/home/pfaffman/src/discourse-repos/discourse/lib/freedom_patches/schema_migration_details.rb:8:in `block in exec_migration'
/home/pfaffman/src/discourse-repos/discourse/lib/freedom_patches/schema_migration_details.rb:8:in `exec_migration'
/home/pfaffman/src/discourse-repos/discourse/lib/migration/safe_migrate.rb:28:in `migrate'
/home/pfaffman/src/discourse-repos/discourse/lib/migration/safe_migrate.rb:53:in `migrate'
/home/pfaffman/src/discourse-repos/discourse/lib/tasks/db.rake:267:in `block (2 levels) in <main>'
/home/pfaffman/src/discourse-repos/discourse/lib/distributed_mutex.rb:53:in `block in synchronize'
/home/pfaffman/src/discourse-repos/discourse/lib/distributed_mutex.rb:49:in `synchronize'
/home/pfaffman/src/discourse-repos/discourse/lib/distributed_mutex.rb:49:in `synchronize'
/home/pfaffman/src/discourse-repos/discourse/lib/distributed_mutex.rb:34:in `synchronize'
/home/pfaffman/src/discourse-repos/discourse/lib/tasks/db.rake:242:in `block in <main>'

Je pense que cela pourrait être lié à ceci :

1 « J'aime »

J’ai le même problème (1e42f55be0 à 452e5064c9).

1 « J'aime »

Je vais examiner cela aujourd’hui.

3 « J'aime »

Incroyable, je viens de finir de tout préparer dans ma version de développement, ma première installation de Discourse, j’allais juste l’importer dans ma version live fraîchement installée et j’ai eu exactement cette erreur. Et le seul résultat sur Google est ce post vieux de 5h. J’espère que ça sera corrigé pour que je puisse lancer.

1 « J'aime »

Vous pourriez concevoir un lancement avec le commit précédent celui indiqué ici.

Votre besoin de supprimer la base de données existante, de reconstruire avec le commit précédent et de pouvoir probablement effectuer la restauration.

Et 5 heures, c’est un très bon SEO.

J’ai ouvert une PR avec un correctif et je la fais réviser dès que possible.

5 « J'aime »

Et il a été fusionné peu de temps après cette publication !

3 « J'aime »

Ce sujet a été automatiquement fermé 7 jours après la dernière réponse. Les nouvelles réponses ne sont plus autorisées.