Muchas veces quienes trabajan y desarrollan con bases de datos, tendrán el problema de tener que ver como sincronizar los cambios en la base de datos de desarrollo con la de producción o testing. Es realmente un tema, ya que cualquier error ahí, nos hace fallar la subida al ambiente de producción (o de testing).Existen montón de herramientas que permiten sincronizar 2 base de datos y generar un script de migración de una base a otra, ahorrándonos el trabajo de nosotros tener que llevar un tracking de los cambios, lo cual lleva a una minimización de error. Una excelente herramienta para hacer esto es el Red Gate Compare, la cual es bastante potente y rápida. Lástima que sale 395 USD en su versión más económica. También Visual Studio for Database Professional incorpora una herramienta similar. Pero es necesario tener la versión Team System (la más cara) del VS (2005/2008).
Por lo tanto, he decido crear una herramienta 100% open source, desarrollada en C# usando .NET 3.5, para comparar 2 bases de datos y generar un script de diferencias.
La herramienta se llama Open DbDiff, actualmente está en estado Beta y solo funciona para SQL Server 2005, pero la hemos probado con montón de distintos casos de uso diferentes, en las más variadas situaciones y ha funcionado muy bien. Es rápida, especialmente en maquinas con más de un núcleo, ya que es multihilo. Su algoritmo de generación de script es bastante inteligente y sabe en qué situaciones debe regenerar una tabla o índice, o hacer simplemente un ALTER.
Compara los siguientes objetos:
- Tablas (incluyendo opciones como vardecimal, text in row, etc..)
- Columnas (incluyendo campos Formulas, opciones de xml, collate, etc..)
- Constraints
- Indices
- Triggers
- User Data Types
- Vistas
- Store Procedures
- XML Schemas
- Sinonimos
- File Groups
- Assemblys
De todas maneras, toda le falta pulir algunos detalles, está en estado Beta, pero es muy potente. Si está buscando herramientas de sincronización, se las recomiendo. El link para bajar el instalador es el siguiente:
http://opendbiff.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=25206



