sql server - tabla - ¿Cuál es la mejor forma de controlar la versión de los procedimientos almacenados de mi servidor SQL?
procedimientos almacenados en sql server 2008 (10)
¿Cuál es la mejor manera de controlar la versión de mis objetos de base de datos? Estoy usando Visual Studio 2005/2008 y SQL server 2005. Preferiría una solución que pueda usarse con SVN.
Estoy usando scriptdb.exe desde http://scriptdb.codeplex.com/
Y podría ser útil usar el método de carriles: http://code.google.com/p/migratordotnet/wiki/GettingStarted
Hacemos volcados al texto plano y los guardamos en nuestro VCS.
Sería capaz de crear un script de copia de seguridad y compromiso para hacer algo similar.
Igual que su otro código, agregue un "Proyecto de base de datos" a su solución de aplicación y mantenga los archivos sql usados para construir los objetos de la base de datos allí. Utilice el mismo control de versión para esos archivos de código que para la aplicación.
La mejor manera, una que funcione para ti.
La forma más fácil: una que no existe actualmente.
Utilizamos un método semiautomático (scripts bajo control de fuente, pequeño subconjunto de personas capaces de implementar procedimientos almacenados en el servidor de producción, los cambios en el esquema deben reflejarse en los cambios en los archivos controlados subyacentes).
Lo que deberíamos hacer es implementar algún tipo de control de fuente frente a diff de volcado de esquema de texto plano ... pero generalmente ''funciona para nosotros'', aunque es un faff realmente la mayor parte del tiempo.
Mire las herramientas ofrecidas por RedGate. Tratan específicamente casos de copia de seguridad / restauración / comparación para objetos SQL Server, incluidos los SP. Alternativamente, no estoy seguro, pero creo que Visual Studio te permite verificar sp''s en un repositorio. Havent lo intenté yo mismo. Pero puedo recomendar las herramientas RedGate. Me han ahorrado un montón de problemas
No sé de una solución preempaquetada, lo siento ...
... pero ¿no podría simplemente un pequeño script que se conectaba a la base de datos y guardaba todos los procedimientos almacenados en el disco como archivos de texto? Luego, el script agregará todos los archivos de texto al repositorio SVN al hacer una llamada al sistema para ''svn add''.
Entonces es probable que desee que otro script se conecte al DB, elimine todos los procedimientos almacenados y cargue todos los procedimientos almacenados del repositorio desde el disco. Este script necesitaría ejecutarse cada vez que ejecutara "svn up" y tuviera procedimientos almacenados nuevos / modificados.
No estoy seguro de si esto se puede lograr con MS SQL, pero estoy bastante seguro de que MySQL lo acomodaría. Si escribir extensiones SVN para hacer esto es demasiado complicado, Capistrano admite secuencias de comandos checkin / checkout, IIRC.
Usamos Subversion y todo lo que hacemos es guardar el código sql en el directorio de nuestro proyecto de subversión y luego enviar el código al repositorio cuando estemos listos y actualizar desde el repositorio antes de comenzar a trabajar en algo que ya está allí.
El verdadero truco es convencer a los desarrolladores para que lo hagan. Nuestros dbas hacen eso al eliminar cualquier proc almacenado (u otro objeto de base de datos) que no esté en Subversion periódicamente. Perder cosas una vez y casi nadie lo hace de nuevo.
Uso SVN para todo el control fuente de mi mesa / sproc / función.
No pude encontrar nada que satisficiera mis necesidades, así que terminé escribiendo una utility que me permite volcar el código en una buena estructura de directorios para usar con SVN.
Para los interesados, la fuente está ahora disponible en svn: //finsel.com/public/VS2005/GenerateSVNFilesForSQL2005 .
Utilice versaplex para eliminar su esquema: http://code.google.com/p/versaplex/
Versaplex viene con Schemamatic, que lee el esquema de la base de datos (tablas, SP, etc.) y también los datos (los datos se vuelcan como CSV). Lo uso, con SVN y git, y es genial :) Si necesitas ayuda, házmelo saber, ¡vale la pena intentarlo! http://github.com/eduardok/versaplex
Acepto que, si es posible, debe usar proyectos de bases de datos para versionar su base de datos junto con su fuente de aplicación.
Sin embargo, si se encuentra en una situación empresarial, también debería considerar el uso de una herramienta para rastrear los cambios en el servidor y realizar una versión de esos cambios. El hecho de que el proyecto de base de datos exista no significa que algún administrador o desarrollador no pueda cambiar esos sprocs en el servidor.