Réutilisation de `external_id` après la suppression d'un sujet

Nous utilisons la fonctionnalité external_id pour la création automatique de sujets dans notre intégration. Je note cependant que si nous supprimons un sujet, nous ne pouvons pas en créer un nouveau avec le même external_id et recevons à la place l’erreur :

{'action': 'create_post', 'errors': ['External has already been taken']}

Est-il possible de réutiliser le même external_id après la suppression d’un sujet qui l’utilisait ?

Je suis au courant d’une solution de contournement discutée ailleurs utilisant des champs personnalisés sur les objets Utilisateur, cependant les objets Sujet ne semblent pas prendre en charge les champs personnalisés. Existe-t-il un moyen ?

C’est parce que les sujets supprimés sont marqués comme supprimés et non retirés de la base de données. Vouloir réassocier un ID à un autre sujet semble être une mauvaise idée (mais vous n’avez pas demandé). Vous pouvez forcer la suppression réelle du sujet (la fonctionnalité de suppression permanente des messages pourrait être la solution).

Salut @pfaffman
Merci beaucoup pour votre suggestion et pour m’avoir incité à réfléchir davantage à la réutilisation de external_id en général.

1 « J'aime »

À moins que ces entiers ne soient vraiment coûteux ? :thinking:

(Heureux d’avoir semblé utile plutôt que sarcastique !) J’espère que vous trouverez une bonne solution.

Le défi est que la valeur que nous utilisons pour l’external_id du sujet est difficile à modifier (opération manuelle) en raison d’une limitation dans l’application avec laquelle nous nous intégrons (CatalogIt - expose une API en lecture seule). Nous supprimons et recréons souvent manuellement les sujets au fur et à mesure de notre développement (c’est tout ce que fait l’intégration - elle crée des sujets de discussion pour les éléments dans CatalogIt lorsqu’un utilisateur clique sur un lien « discuter de cet élément »), nous obligeant à modifier cette valeur à chaque fois. Si la valeur n’est pas modifiée après la suppression du sujet et qu’un utilisateur clique plus tard sur le lien « discuter de cet élément », nous rencontrons l’erreur « external already taken ».

Peut-être qu’archiver plutôt que supprimer est une meilleure idée, ou peut-être existe-t-il un mécanisme de masquer/afficher sur lequel nous pouvons nous appuyer. Je ne connais pas Discourse, des recherches sont nécessaires, je vais approfondir et voir ce que je peux trouver.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.