Comment synchroniser le développement et la production de la base de données
Connaissez-vous des applications pour synchroniser deux bases de données - au cours du développement parfois, il est nécessaire d'ajouter une ou deux lignes de la table ou de la nouvelle table ou de la colonne.
Habituellement, j'écris chaque instruction sql dans un fichier et pendant le téléchargement chemin je evecute ces lignes sur ma base de données de production (plus tôt de la sauvegarder).
Je travaille avec mySQL, postreSQL bases de données.
Quelle est votre pratique et quelles applications vous aide à que dans.
- J'ai ajouté une prime. J'ai besoin de ce travail pour les bases de données MySQL. Je travaille avec Typo3, si ce qui compte.
- Et il devrait être à faible coût. 🙂
Vous devez vous connecter pour publier un commentaire.
Vous avez demandé un outil ou d'une demande de réponse, mais ce que vous avez vraiment besoin est un processus de réponse. Le thème sous-jacent ici est que vous devez être versioning votre base de données DDL (et DML, en cas de besoin) et de fournir des scripts de modification pour être en mesure de mettre à jour la version de votre base de données vers une version supérieure.
Cet ensemble de liens fournis par Jeff Atwood et écrit par K. Scott Allen expliquer en détail en quoi cela devrait ressembler - et ils le font mieux que je peux peut-être écrire ici: http://www.codinghorror.com/blog/2008/02/get-your-database-under-version-control.html
Ont des scripts (sous contrôle de source bien sûr) que vous ne jamais ajouter le fond au large. Qui, combinée avec la régulière restaure à partir de votre base de données de production de dev, vous devriez être en or. Si vous êtes à la stricte à ce sujet, cela fonctionne très bien.
Sinon, je sais que beaucoup de gens l'utilisation de redgate trucs pour SQLServer.
Pour PostgreSQL, vous pourriez utiliser Un Autre Outil De Comparaison De PostgreSQL . Il peut diff deux sessions SQL très rapide (quelques secondes sur une db avec près de 300 tableaux, de 50 points de vue et 500 procédures stockées). De sorte que vous pouvez trouver vos modifications facilement et obtenir un sql diff lequel vous pouvez exécuter.
De la APGDiff Page:
Un autre vote pour RedGate SQL de Comparer
http://www.red-gate.com/products/SQL_Compare/index.htm
Ne voudrais pas vivre sans elle!
Edit: Désolé, il semble que ce est seulement pour SQL Server. Encore si tout les utilisateurs de SQL Server ont la même question que je recommande vivement cet outil.
Si vous écrivez vos instructions SQL de votre base de données de développement (qui sont, j'imagine, une série d'instructions DDL (CREATE, ALTER et DROP), pourquoi ne pas garder une trace d'eux en les enregistrant dans un tableau, avec une "version" de l'index? Ensuite, vous serez en mesure de:
J'aime vraiment le Des outils EMS.
Il existe des outils sont disponibles pour tous les DB, et vous avez la même expérience utilisateur pour chaque type de DB.
L'un de ces outils est le DB Comparer.
CRAPAUD
sauvé de nombreuses un cul à plusieurs reprises dans le passé. Pourquoi les gens de l'exécution de sql avec pas de stratégie de sortie?
la redgate l'un est bon aussi.
Siebel (CRM, les Ventes, etc. produit de gestion) dispose d'un outil intégré pour aligner la base de données de production avec le développement un (dev2prod).
Sinon, vous avez à coller manuellement les scripts exécutables.
Navicat dispose d'une structure d'assistant de synchronisation qui gère cela.
Je résoudre ce problème en utilisant Hibernate. Il peut détecter et autocreate manque de tables, de colonnes, etc.
Vous pouvez ajouter une certaine automatisation de votre façon actuelle de faire les choses en utilisant dbDeploy ou un script similaire. Cela vous permettra de garder une trace de vos changements de schéma et de mise à niveau et restauration de votre schéma que vous voyez l'ajustement.
Ici une quinte linux bash script que j'ai écrit pour la synchronisation de bases de données Magento... mais vous pouvez facilement le modifier pour d'autres utilisations 🙂
http://markshust.com/2011/09/08/syncing-magento-instance-production-development
DBV - "Base de données de contrôle de version, facile!" (PHP)