Fondamentalement: NO. Pas quelque chose de stock avec php.
CEPENDANT ... Concilier système, par exemple d'une commande SHOW CREATE <table_name>;
, est encore un moyen fiable de faire ce que vous parlez - si tout à fait non négligeable dans la nature. Vous devez être très conscient des détails dans la mécanique de la définition de schéma si vous devez détecter et reproduire cela. Vous êtes toutefois libre de développer un domaine spécialisé qui suit un numéro de version que vous mettez à jour lors de la mise à jour du schéma. Ensuite, au moins, vous saurez quand les autres cibles de réplication doivent également être mises à jour - en comparant les données de ce champ de version.
La façon dont j'ai souvent vu cela mis en œuvre est de suivre toutes les commandes ALTER TABLE (etc) et de les suivre. Vous pouvez vérifier quelque chose comme un fichier 'r12345.sql' dans SVN pour un système d'exécution automatique des mises à jour db. Il est impliqué, mais ce que je veux dire, c'est qu'un script php peut vérifier tous les fichiers .sql du schéma db et exécuter chacun des uns (en série) qui vont lire les changements sur la base de données actuelle.
Beaucoup dépend de ce que vous essayez d'accomplir. Si vous fournissez plus d'informations, j'expliquerais.
Je ne connais rien à PHP et ce qui est disponible dans ce monde. Mais vous pouvez toujours utiliser liquibase, qui permet le versionnage de la base de données, les rollbacks, etc, d'une manière agnostique de la plate-forme (il est écrit en Java). –
Je voudrais en savoir plus sur ce que vous essayez d'accomplir. Etes-vous en train de mettre à jour d'autres bases de données avec le schéma d'un master db? Si oui, combien? Le service MySQL db fournit certainement des mécanismes pour les serveurs esclaves, qui sont souscrits à tous les changements et vont ensuite répliquer toutes les actions sur le maître. Vous n'auriez pas besoin de PHP pour l'implémenter. – zanlok
zanlok, je n'essaie pas de déployer des serveurs esclaves. Un système de gestion des versions db offre de nombreux avantages. Par exemple, il est plus facile de coordonner les développeurs/branches de code et de conserver des références aux modifications de schéma de base de données. Tout type de processus manuel est sujet à l'erreur humaine. De nos jours, j'ai pensé qu'il devrait y avoir de nombreux systèmes qui suivent automatiquement vos changements et les dater. – etang