Puis-je changer le site utilisé comme fournisseur (passer de staging à prod) ?

J’ai une copie de staging de quelques mois d’un site WP. J’ai pensé essayer comment le SSO fonctionne avec le forum (fermé aux inscriptions, pas encore lancé) et ensuite le connecter plus tard avec le site de production, qui aura un peu plus d’utilisateurs ajoutés entre-temps. Cela confondrait-il Discourse ? J’essaierais avec une poignée d’utilisateurs de staging pour voir comment les choses fonctionnent, mais qu’advient-il d’eux lorsque la connexion sera basculée pour utiliser l’autre site ? Leur ID utilisateur WP et leur e-mail restent les mêmes, cependant.

1 « J'aime »

Si l’ID utilisateur WP et l’e-mail sont identiques sur vos sites de production et de staging, vous pouvez passer au site de production sans avoir à apporter de modifications du côté de Discourse.

Il serait judicieux de vérifier à nouveau pour vous assurer que les ID utilisateur sont les mêmes. Je me souviens qu’avec les sites de staging et de production de WP Engine, il n’y avait aucune garantie que les ID utilisateur correspondent entre la production et le staging - ils utilisent des bases de données complètement séparées. Assurez-vous que ce n’est pas le cas pour vos sites de production et de staging.

Si vous n’êtes pas sûr que les ID utilisateur correspondent entre la production et le staging, et que le paramètre require_activation n’est pas défini sur true dans la charge utile SSO, vous pouvez supprimer en toute sécurité toutes les entrées SingleSignOnRecord existantes de la base de données Discourse avant de passer au site de production. Lors de la première connexion des utilisateurs existants à Discourse via WordPress, Discourse les trouvera en fonction de leur adresse e-mail et générera un nouvel enregistrement SingleSignOnRecord pour eux.

Les entrées SingleSignOnRecord existantes peuvent être supprimées de la console Rails avec :

SingleSignOnRecord.destroy_all

Si le paramètre require_activation est défini sur true dans la charge utile SSO, vous pouvez toujours supprimer les enregistrements SSO du côté de Discourse. Avant que les utilisateurs existants ne puissent se connecter à Discourse depuis votre site de production, vous devrez marquer leurs adresses e-mail comme vérifiées sur WordPress. Les détails sur la façon de le faire à partir de leurs pages de profil WordPress sont ici : Validate Email Addresses with the WP Discourse plugin.

Si vous avez un site Wordpress de staging, je vous recommande fortement d’avoir également un forum Discourse de staging. De cette façon, vous n’aurez pas à vous soucier de ce qui pourrait arriver si vous connectiez votre Wordpress de staging à un Discourse de production.

C’est un scénario courant : quelqu’un crée un site sur un service d’hébergement WordPress (disons WP Engine), teste les choses sur le site de staging par défaut, puis passe à la production. J’ai répondu à la même question plusieurs fois lorsque je faisais du support pour Discourse. Un site de staging séparé et permanent pour Discourse n’était généralement pas une option (ou vraiment nécessaire).

1 « J'aime »

Oui, vous avez raison, c’est un scénario relativement courant.

Néanmoins, si votre Wordpress est en production, comme semble l’être le cas de ce monsieur (@Firsh, corrigez-moi si je me trompe), alors je pense que le risque potentiel / coût de mélanger les environnements de staging et de production l’emporte sur tout le temps et les coûts économisés en créant simplement une instance Discourse distincte. Ceci en supposant que votre staging est une copie de votre production (ce qui est souvent le cas).

À moins qu’il n’y ait des restrictions organisationnelles sur la création de nouvelles instances (auquel cas vous devriez probablement avoir un environnement de staging séparé de toute façon), il est relativement peu coûteux et facile de créer une instance Discourse distincte sur DigitalOcean, Vultr, etc., et d’éviter tout problème qui pourrait découler de la pollinisation croisée Staging <> Production. Vous gagnerez probablement du temps (et de l’argent sous forme de temps) en le faisant. Vous pouvez simplement l’éteindre lorsque vous avez terminé.

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