Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 10/10/2012, à 16:36

xxkirastarothxx

Mysql-SVN : Travail SQL collaboratif

Bonjour à tous.

Je vous présente Mysql-SVN, un petit projet qui permet le travail collaboratif et le versioning de base base de donnée.


V 0.2b - r4
*****************************************
le lien vers sourceforge: http://sourceforge.net/p/mysql-svn/code-0/4/tree/
le lien svn: svn checkout svn://svn.code.sf.net/p/mysql-svn/code-0/trunk mysql-svn-code-0

*****************************************
PHP / MySQL / JavaScript+Jquery / HTML / CSS / Smarty
MVC

*****************************************

137

137

*****************************************

Et bien voila, plus d'une fois dans ma vie de développeur, j'ai eu à participer à de gros projets en équipe.
Dans la majorité des cas que j'ai rencontré, chaque développeur à son serveur local (wamp/lamp), et développe son code en local.

Pour le HTML/CSS/PHP etc, pas de problème, un petit serveur svn, par exemple, permet simplement de centraliser les modifications de chaque développeur sans que ceux-ci ne se marchent les uns sur les autres en travaillant, par exemple sur un même fichier.

Par contre, pour les SGBD, je n'ai jamais trouvé d'outil intéressant.

Le développement d'une base de donnée en équipe est encore un peu compliquée.
Dans mon cas, nous avont tous notre base de donnée locale, et nous ajoutons, le moment venu, les nouvelles requêtes sur le serveur central.
Pour ce qui est des autres développeurs, soit on copie-colle chaque requête par Pidgin ou autre --souvent entre deux conneries d'informaticien ^^-- pour que chacun puisse les ajouter à son serveur.

On peut également centraliser toutes ses modifs dans un fichier, et l'envoyer aux collègues, en espérant que ceux ci n'aient pas ajouté d'entrée dans la même table que vous, créant ainsi des conflits d'id.

Bref, c'est un peu le bordel je trouve. Rapidement on oubli de reporter des requêtes, on est pas à jours, ou on ne sait plus ou on en est...
Du coup, perte de temps à réimporter entièrement une base de donnée "propre".


*****************************************

Alors, je me suis motivé et j'ai commencé à développer un outils de centralisation des modifs mysql. (Que mysql, pour le moment, je pense que le portage aux autres bdd se fera rapidement)

Le principe est assez simple, sous forme d'application web.
Il suffit de se loguer à l'application, choisir le projet concerné par la modification, et, de cette page, pouvoir mettre à jour sa base de donnée par rapport aux dernières versions envoyées par d'autres utilisateurs ou d'ajouter une modification à la base.



Pour le moment il n'existe pas encore d'installeur, ceux qui veulent tester devront utiliser le SVN, et installer la base de donnée par le fichier sql s'y trouvant en attendant que le projet ai un peu évolué.

Fonctionnalités actuelles:
*****************************************
Front:
[*]Multi-projets[/*]
[*]Multi-Langue (Seul le fichier français est disponible pour le moment) [/*]
[*]Ajout d'une ou plusieurs requête comme version[/*]
[*]Listing des versions d'un projet[/*]
[*]Mise à jour totale ou jusqu'à une version X[/*]
[*]Impossible d'ajouter une version si notre base n'est pas à jour afin de limiter au maximum les conflits[/*]

Back:
[*]Ajout de projet[/*]
[*]Ajout d'utilisateur[/*]
[*]Ajout d'une base de donnée liée à un projet et un utilisateur[/*]


*****************************************



Voila pour le moment,
N'hésitez pas à poser vos questions, apporter vos idées ou reporter un bug smile

Dernière modification par xxkirastarothxx (Le 11/10/2012, à 09:46)


Journaliste: Selon Vous, Quel Est Le Plus Grand Mal De L'Humanité, L'Ignorance Ou L'Indifférence ?
Politique: ... J'en Sais Rien, Et J'men Fou ...
Profile Doc xXKirastarotHXx

Hors ligne

#2 Le 10/10/2012, à 19:40

Tycho Brahe

Re : Mysql-SVN : Travail SQL collaboratif

Salut !

C'est en effet une problématique que nous sommes nombreux à rencontrer ; et j'avoue que pour ce cas précis je l'ai malheureusement toujours abordé avec fatalisme. J'aime beaucoup ta proposition de changer ça, mais moins la solution que tu apportes (je ne suis pas fan d'une application web pour ce genre de cas). Perso je verrais plutôt quelques scripts permettant d'automatiser un export et import de la BDD (mysqldump & co) qui soit utilisable via un système de gestion de versions classique (svn, git, mercurial,...). Enfin il n'empêche que j'aime beaucoup le fait que tu proposes une solution à ce problème récurent smile


Loi de Newton :
Si tu restes à glander sous le pommier, tu pourrais bien prendre une pomme sur la gueule.

Hors ligne

#3 Le 11/10/2012, à 09:16

xxkirastarothxx

Re : Mysql-SVN : Travail SQL collaboratif

Et bien je dois dire que je suis parti dans la même optique que phpmyadmin.
Je pensais d'ailleurs, par la suite, faire un script greasmonkey ou une extention firefox pour coupler le tout avec phpmyadmin.


Le problème d'un script qui utiliserai un mysqldump avec un système de versioning, c'est le cas des très grosses base de données (xGo).
Avec ce genre de base de données, on ne peut pas se permettre d'exporter/importer la base de donnée complète à chaque modification.
L'import export de ces bases pourraient être très long, et, également, engendrer des pertes de données locales.
Je voulais absolument un système de versions qui permette des mises à jour incrémentielles.


Bon, en creusant un peu, avec des exports en multi-fichiers, pour limiter le flag de mise à jour, et un système de Diff par rapport à un des exports sources... il doit bien y avoir une solution, mais on part dans des domaines que je maitrise moins bien - les langages de scripting que je maîtrise étant php et python ^^ - et le coté portable de l'application serait bien plus complexe à entretenir si on commence à utiliser des outils externes tel que les diff ou svn/git etc...


C'est pour ça qu'après réflexion avant de me lancer dans le projet je me suis limiter à quelque chose de simple, dans une domaine que je maîtrisais bien, et ou le développement pourrait être rapide (2 jours pour la première version, avec le back-end minimum) et surtout, très facilement portable, puisque php/mysql.
Autre avantage: cela permet de n'ajouter que les modifications de "dev" et non de "front", dans le sens où il ne s'agit pas des données générées par le site/projet, mais celles que les développeurs auront jugées nécessaires, tout en laissant de coté les tests locals et les données inutiles.



Je dois bien avouer que tant que l'application ne sera pas couplée à phpmyadmin, le coté pratique ne sera pas à son paroxysme, il faut être honnête.
Mais je pense que dès que les boutons de "mise à jour" et "ajouter cette requête comme version" apparaîtrons dans phpmyadmin, le gain de temps devrait vraiment être important smile
L'interface de l'application ne devrait alors servir qu'à avoir un visuel sur les modifications.


En tout cas, merci pour tes encouragements  = )
J'espère vraiment que cela fera gagner du temps à beaucoup de devs smile

Dernière modification par xxkirastarothxx (Le 11/10/2012, à 09:55)


Journaliste: Selon Vous, Quel Est Le Plus Grand Mal De L'Humanité, L'Ignorance Ou L'Indifférence ?
Politique: ... J'en Sais Rien, Et J'men Fou ...
Profile Doc xXKirastarotHXx

Hors ligne