Revision control d'un base de données?

Forum pour parler de prog. et d'informatique questions/réponses/trucs sont les bienvenus.

Revision control d'un base de données?

Messagede Phil » Jeu Aoû 16, 2012 9:46 am

J'ai un projet qui utilise tortoise pour le source code. Pis pour la BD(mySQL) on note juste les changements dans les details du commit. J'ai aucune idée de ce qui est pratique courante pour gérer les bases de données revision-wise. Est-ce que le monde font ça?
Black Label... Criss moué sa sur la tabel
Avatar de l'utilisateur
Phil
Administrator
 
Messages: 11158
Inscription: Jeu Sep 07, 2006 4:33 pm
Localisation: Fleurimont

Re: Revision control d'un base de données?

Messagede Dieu » Jeu Aoû 16, 2012 9:50 am

habituellement c'est des systemes de backups automatiques qui sont des features de BD. C'est assez standard pour les systemes de BD. Sub-versioner des BDs c'est assez overkill parce que t'as pas vraiment d'interets a faire des "diff" sur des fichiers binaires comme des BDs.
Talleyrand à un retour des Etats Unis d’Amérique dira « J’y ai trouvé un pays avec trente-deux religions mais une seule sauce. », résumant ainsi l’importance des sauces dans la cuisine française.
Avatar de l'utilisateur
Dieu
NSFW
 
Messages: 7072
Inscription: Dim Sep 10, 2006 6:03 pm
Localisation: (ノಥ益ಥ)ノ彡┻━┻

Re: Revision control d'un base de données?

Messagede AntonN » Jeu Aoû 16, 2012 10:10 am

Faudrait remplacer 'BD' par un meilleur mot.
Des fois, je sors du forum pi je me dis WOW!
Avatar de l'utilisateur
AntonN
Tas de marde
 
Messages: 4997
Inscription: Ven Sep 15, 2006 3:15 pm
Localisation: À Laval!

Re: Revision control d'un base de données?

Messagede Phil » Jeu Aoû 16, 2012 10:15 am

La nature de mon problème est pas claire pantoute, laisse moi préciser. On a une BD de prod avec du vrai data, une BD de developpement, que tout le monde copie et garde sur son PC pour travailler.

Comment est-ce qu'on peux reproduire la structure de la BD entre les ordis des programmeurs pis la base de donnée de développement? Présentement on dit au monde, touchez pas à la BD de dev pour les 20 prochaines minutes, pis on edit manuellement la structure pour qu'elle match le commit qu'on est sur le point de faire.

Ensuite, pour mettre la BD de dev en production, faut que je relise tout les changelogs pour trouver les modifs, et que je les reproduise encore manuellement.
Black Label... Criss moué sa sur la tabel
Avatar de l'utilisateur
Phil
Administrator
 
Messages: 11158
Inscription: Jeu Sep 07, 2006 4:33 pm
Localisation: Fleurimont

Re: Revision control d'un base de données?

Messagede Dieu » Jeu Aoû 16, 2012 10:17 am

remplace BD par [ img]http://i.imgur.com/Idj2H.gif[/img ]
Talleyrand à un retour des Etats Unis d’Amérique dira « J’y ai trouvé un pays avec trente-deux religions mais une seule sauce. », résumant ainsi l’importance des sauces dans la cuisine française.
Avatar de l'utilisateur
Dieu
NSFW
 
Messages: 7072
Inscription: Dim Sep 10, 2006 6:03 pm
Localisation: (ノಥ益ಥ)ノ彡┻━┻

Re: Revision control d'un base de données?

Messagede Denis » Jeu Aoû 16, 2012 10:20 am

Remplace BD par grouillades!
Signature moi le sac.

Bliblibli
Avatar de l'utilisateur
Denis
Esstra Sauce
 
Messages: 10169
Inscription: Ven Sep 08, 2006 5:55 pm
Localisation: Ici Radio-Canada

Re: Revision control d'un base de données?

Messagede Dieu » Jeu Aoû 16, 2012 10:22 am

Phil a écrit:La nature de mon problème est pas claire pantoute, laisse moi préciser. On a une BD de prod avec du vrai data, une BD de developpement, que tout le monde copie et garde sur son PC pour travailler.

Comment est-ce qu'on peux reproduire la structure de la BD entre les ordis des programmeurs pis la base de donnée de développement? Présentement on dit au monde, touchez pas à la BD de dev pour les 20 prochaines minutes, pis on edit manuellement la structure pour qu'elle match le commit qu'on est sur le point de faire.

Ensuite, on a une BD qui a eu plusieurs modifs à sa structure. Je veux envoyer ça en production, faut que je relise tout les changelogs pour trouver les modifs, et que je les reproduise encore manuellement.

Habituellement c'est pas possible d'envoyer des commandes SQL pour modifier la structure des BDs pendant qu'elle run? Comme ca le changement se fait on the fly sans que personne s'en rend compte. Pi au pire tu fais la meme commande sur la BD de Dev après pour qu'elle garde toutes ses donnees et qu'elle change de structure... Ca fait longtemps les cours de BD du cegep X_X
Talleyrand à un retour des Etats Unis d’Amérique dira « J’y ai trouvé un pays avec trente-deux religions mais une seule sauce. », résumant ainsi l’importance des sauces dans la cuisine française.
Avatar de l'utilisateur
Dieu
NSFW
 
Messages: 7072
Inscription: Dim Sep 10, 2006 6:03 pm
Localisation: (ノಥ益ಥ)ノ彡┻━┻

Re: Revision control d'un base de données?

Messagede ben » Jeu Aoû 16, 2012 10:26 am

Phil, le concept s'appelle «migrations». C'est bien implanté dans les frameworks comme Rails.
En gros, tu dédies une mini table dans la DB qui contient le numéro de révision.
Les changements au schéma de la dB sont représentés par des migrations qui font passer une version X de la DB a une version X+1.

Une migration est un script (SQL et/ou code de support php/python/etc).
Par exemple: commande ALTER TABLE pour ajouter une colonne.

L'idée est que chaque changement doit pouvoir être appliqué à une dB qui contient déjà des données, et sans perdre celles ci.

Aussi, il devrait y avoir un script pour créer tout à partir de rien (plus rapide que de passer à travers toutes les migrations). Ici on aurait des CREATE TABLE seulement.


Fais une recherche pour "database migration".
ben

 
Messages: 2686
Inscription: Sam Déc 16, 2006 9:53 am
Localisation: Montreal, QC

Re: Revision control d'un base de données?

Messagede Phil » Jeu Aoû 16, 2012 10:42 am

oh nice, j'savais pas que ça existait dans le framework qu'on utilise itoo.
http://book.cakephp.org/2.0/en/console- ... tions.html

Le fait que ça génère le shéma entier règle aussi le problème de diff! Si on diff 2 schéma, on voit explicitement les modifications faites.
En fait, j'avais même pas pensé que phpMyAdmin pouvait lui aussi exporter le schéma entier! (EDIT: quoique phpMyAdmin fait pas de fichier d'update)
Black Label... Criss moué sa sur la tabel
Avatar de l'utilisateur
Phil
Administrator
 
Messages: 11158
Inscription: Jeu Sep 07, 2006 4:33 pm
Localisation: Fleurimont

Re: Revision control d'un base de données?

Messagede Raymond Ouelette » Jeu Aoû 16, 2012 12:43 pm

Phil a écrit:J'ai un projet qui utilise tortoise pour le source code. Pis pour la BD(mySQL) on note juste les changements dans les details du commit. J'ai aucune idée de ce qui est pratique courante pour gérer les bases de données revision-wise. Est-ce que le monde font ça?

Moi je gère mes bd avec des scripts sql que je met dans svn, donc tout ce qui est statique dans la bd (tables, données statiques) sont dans svn. Pour les données d'utilisateurs c'est pas mal des backups.
Avatar de l'utilisateur
Raymond Ouelette
tête de crane
 
Messages: 8550
Inscription: Ven Sep 08, 2006 4:47 pm
Localisation: Allo


Retourner vers Programmation et Informatique

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron