Question

Nous travaillons avec Phing's tâche dbdeploy faire contrôle de version de nos bases de données Postgresql, ce qui est un bon moyen de travailler. Je n'ai pas vraiment beaucoup de problèmes avec les versions de base de données après avoir commencé à travailler avec elle, à part un doute harcelant: comment contrôler les données que la base de données contient?

À l'heure actuelle, j'ai généralement un delta qui contient quelques exemples de données, qui sont utilisées pour les tests, mais dans un environnement de production, je veux avoir des données de production, comme dans les données valides réelles. Bien sûr, je pourrais écrire un autre delta qui tronque le testdata et insérer les données réelles, mais en quelque sorte qui semble maladroite et encombrante, car la seule langue dans un delta est SQL. Lorsque vous écrivez un tel delta, la gestion des séquences et la veille des relations de clés étrangères sont correctes, est une vraie douleur.

J'ai donc pensé qu'il pourrait être logique d'écrire un script PHP qui importera des données, disons, un fichier CSV. Cela fonctionnerait en fait, jusqu'à ce qu'il y ait un autre changement de base de données qui renommée une colonne, ce qui rendrait le fichier PHP inutile. Bien sûr, cela est facilement corrigé en mettant à jour le script pour incorporer les modifications de la base de données et en relance le script, mais c'est sujet aux erreurs, ce qui est la raison pour laquelle j'ai commencé à utiliser DBDEPLOY en premier lieu.

Donc, ma question est; Comment gérez-vous les données lors du déploiement des modifications, ou plus précisément: comment insérer les données dont l'environnement de production a besoin?

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top