40 votes

Comment synchroniser la base de données de développement et de production

Connaissez-vous des applications permettant de synchroniser deux bases de données ? Pendant le développement, il est parfois nécessaire d'ajouter une ou deux lignes de table ou une nouvelle table ou colonne. Habituellement, j'écris toutes les instructions SQL dans un fichier et pendant le téléchargement, j'exécute ces lignes sur ma base de données de production (avant de la sauvegarder). Je travaille avec des bases de données mySQL et postreSQL.

Quelle est votre pratique et quelles applications vous aident dans ce domaine ?

28voto

whaley Points 8789

Vous avez demandé une réponse concernant un outil ou une application, mais ce dont vous avez réellement besoin est une réponse concernant un processus. Le thème sous-jacent ici est que vous devez versionner le DDL de votre base de données (et le DML, si nécessaire) et fournir des scripts de modification pour pouvoir mettre à jour n'importe quelle version de votre base de données vers une version supérieure.

Cet ensemble de liens fournis par Jeff Atwood et écrits par K. Scott Allen expliquent en détail ce à quoi cela devrait ressembler - et ils le font mieux que ce que je pourrais écrire ici : http://www.codinghorror.com/blog/2008/02/get-your-database-under-version-control.html

5voto

Iain Holder Points 7930

Ayez des scripts (sous contrôle de source bien sûr) que vous n'ajoutez jamais qu'au bas de l'échelle. Combiné à des restaurations régulières de votre base de données de production vers la base de données de développement, vous devriez être en or. Si vous êtes strict à ce sujet, cela fonctionne très bien.

Sinon, je sais que beaucoup de gens utilisent les produits Redgate pour SQLServer.

5voto

Patryk Kordylewski Points 1064

Pour PostgreSQL, vous pouvez utiliser Un autre outil de comparaison PostgreSQL . Il peut différencier deux Dumps SQL très rapidement (quelques secondes sur un db avec environ 300 tables, 50 vues et 500 procédures stockées). Ainsi, vous pouvez trouver vos changements facilement et obtenir un diff sql que vous pouvez exécuter.

Depuis la page APGDiff :

Another PostgreSQL Diff Tool est un outil de comparaison PostgreSQL simple qui est utile pour les mises à jour de schémas. L'outil compare deux fichiers de vidage de schéma et crée un fichier de sortie qui est (après quelques modifications faites à la main) approprié pour la mise à niveau de l'ancien schéma.

5voto

AlexJReid Points 1291

Un autre vote pour RedGate SQL Compare

http://www.red-gate.com/products/SQL_Compare/index.htm

Je ne voudrais pas vivre sans !

Edit : Désolé, il semble que cela ne concerne que SQL Server. Néanmoins, si un utilisateur de SQL Server se pose la même question, je recommande vivement cet outil.

2voto

Philippe Grondier Points 6697

Si vous écrivez vos instructions SQL pour votre base de données de développement (qui sont, j'imagine, des séries d'instructions DDL telles que CREATE, ALTER et DROP), pourquoi ne pas en garder la trace en les enregistrant dans une table, avec un index "version" ? Vous serez alors en mesure de :

  1. suivre vos changements de version
  2. réaliser une petite routine permettant la mise à jour "automatique" de votre base de données de production en envoyant les instructions enregistrées à la base de données.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X