web-dev-qa-db-fra.com

Meilleure méthode pour mettre à niveau la table de nombreuses bases de données du plugin multisite

Dans le codex, il est expliqué comment se connecter à plugin_loaded et vérifier la version du plug-in actuellement installé par rapport à ce qui est enregistré dans les options, puis réalisez si vous en avez besoin mettre à jour la table des plugins.

La question est la suivante: quelle est la méthode pour le faire avec un plugin multisite doté de tables de base de données personnalisées pour chaque blog réseau? Si j'accroche dans plugin_loaded, un utilisateur aléatoire qui sera le premier à exécuter le code devra prendre toute la charge de ce processus potentiellement énorme et long.

N'y a-t-il pas un moyen manuel de le faire? en quelque sorte via cron? d'autres suggestions?

1
shaharsol

Vous pouvez simplement ajouter une vérification pour is_admin() et current_user_can("update_plugins") afin de vous assurer que vous exécutez uniquement les utilisateurs admin qui se trouvent actuellement dans wp-admin. Tout utilisateur parcourant le front-end ne remarquera rien, qu'il soit connecté ou non.

Vous voudrez probablement également vous assurer que cette opération ne s'exécute qu'une seule fois pour éviter des conditions de concurrence qui pourraient générer des erreurs de base de données, par exemple. exécuter le même ALTER TABLE add ... deux fois.

1
janh