¿Cuál es la mejor forma 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.¿Cuál es la mejor forma de controlar la versión de los procedimientos almacenados de mi servidor SQL?
Respuesta
Hacemos vuelcos 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 conserve los archivos sql utilizados 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.
Si usa sms para extraer sus objetos db a archivos fuente, cuidado con qué codificación se usa. Es posible que Unicode se pueda usar sin que lo sepas, al menos eso es lo que he experimentado. Puede ser molesto cuando quieres hacer un cambio rápido a través de un editor de texto y obtienes un galimatías. – Steve
@Steve, su editor es basura si no puede manejar Unicode. – CMircea
@Steve - No puedo imaginar por qué alguna vez querrías usar algo más que Unicode hoy en día. ¡Esto es noviembre de 2009, no 1989! –
Mire las herramientas que ofrece 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
Soy el administrador de productos para SQL Source Control, que está disponible para probar el acceso anticipado. Funciona con SVN y se integra con SSMS. Regístrese en http://www.red-gate.com/Products/SQL_Source_Control/index.htm. Comentarios bienvenidos! –
SQL Source Control 1.0 http://www.red-gate.com/products/SQL_Source_Control/index.htm ahora se ha enviado y está disponible para evaluar/comprar. –
Una alternativa gratuita a RedGate es esta aplicación gratuita: http://servantt.com/?so Es muy simple de usar, pero hace muy bien el trabajo. – drizin
no sé de una solución pre-envasados, lo siento ...
... pero no que sólo un pequeño script que podrían conectado a la base de datos y guardado 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 podría acomodar esto. Si escribir extensiones SVN para hacer esto es demasiado complicado, Capistrano admite secuencias de comandos checkin/checkout, IIRC.
Utilizamos 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.
¡el amor duro funciona mejor! –
A sus DBA les encantará esta aplicación gratuita, que hace exactamente lo que están haciendo manualmente: http://servantt.com/?so – drizin
Utilizo SVN para todo el control de fuente de mi mesa/sproc/función.
No pude encontrar nada que satisficiera mis necesidades, así que terminé escribiendo un utility para permitirme volcar el código en una buena estructura de directorios para usar con SVN.
Para los interesados, la fuente ya está disponible en svn://finsel.com/public/VS2005/GenerateSVNFilesForSQL2005.
Hola Josef, me he registrado y he intentado descargar su herramienta, ya que se ve muy bien pero obtengo la error "No se pudo encontrar el archivo 'C: \ DotNetNuke \ Portals \ 0 \ Repository \ InstallSVNFilesForSQL2005.3a21c4ac-399a-4006-9057-d9f409e13ce3.zip '. "De su sitio? ¿Hay alguna posibilidad de que libere la fuente para esto? –
En cuanto vuelva a hacer mi sitio, publicaré el código en mi SVN público – Josef
@Josef - No puedo acceder a su servidor svn o acceder a su código - ¿sigue activo? ¿Puedo obtener el código de alguna manera? – Conrad
La mejor manera - una que funcione para usted.
La manera más fácil: una que no existe actualmente.
se utiliza un método semi-manual de (scripts bajo control de origen, pequeña subgrupo de personas capaces de desplegar procedimientos almacenados en el servidor de producción, cambios en el esquema deben reflejarse en cambios en el subyacente comprobado en los archivos).
Lo que debe hacer es implementar algún tipo de control de fuente vs esquema de volcado de esquema de texto claro ... pero en general 'funciona para nosotros' aunque es un faff la mayor parte del tiempo.
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 debe considerar el uso de una herramienta para realizar un seguimiento de los cambios en el servidor, y la 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.
estoy usando scriptdb.exe de http://scriptdb.codeplex.com/
y podría ser útil para utilizar los carriles manera: http://code.google.com/p/migratordotnet/wiki/GettingStarted
Uso versaplex para volcar 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 increíble :) Si necesitas ayuda, avísame, ¡merece la pena intentarlo! http://github.com/eduardok/versaplex
- 1. ¿Cuál es la forma más elegante de usar procedimientos almacenados?
- 2. ¿Cuál es la mejor manera de controlar la versión de los activos gráficos en Windows?
- 3. Cuál es la mejor manera de acceder a los procedimientos almacenados en ORM de Django
- 4. ¿La mejor manera de aprender los procedimientos almacenados de PostgreSQL?
- 5. cambios de versión para procedimientos almacenados
- 6. ¿Cuál es la mejor manera de usar SVN para controlar la versión de un sitio PHP?
- 7. ¿El SQL formado dinámicamente en los procedimientos almacenados niega el propósito mismo de los procedimientos almacenados?
- 8. Cómo agregar la salida de seguimiento/depuración a los procedimientos almacenados en el servidor SQL (2008)
- 9. Clasificación dinámica dentro de los procedimientos almacenados de SQL
- 10. ¿Cuál es la mejor manera de depurar los procedimientos almacenados (y escribir sprocs que son más fáciles de depurar)?
- 11. Versiones de procedimientos almacenados
- 12. ¿Qué versión de MYSQL admite los procedimientos almacenados?
- 13. Lista de procedimientos almacenados de la tabla
- 14. ¿SQL Server Compact Edition es compatible con los procedimientos almacenados?
- 15. de consulta a la lista todos los procedimientos almacenados
- 16. Procedimientos almacenados a archivos .sql
- 17. ¿Los procedimientos almacenados de SQL distinguen entre mayúsculas y minúsculas?
- 18. ¿Cuál es el significado de "procedimientos almacenados precompilados"?
- 19. Estoy buscando una forma confiable de verificar los procedimientos almacenados de T-SQL. ¿Alguien tiene uno?
- 20. ¿Cuál es la mejor forma de integrar el control de la versión de TFS
- 21. procedimientos almacenados con sqlAlchemy
- 22. ¿Cómo contar todos los procedimientos almacenados en el Servidor SQL para una base de datos?
- 23. ¿Cuál es la mejor forma de precompilar JSP con Ant
- 24. Procedimientos almacenados - Fin de días
- 25. Qué ORM es el mejor cuando se utilizan procedimientos almacenados
- 26. ¿Cómo habilitar la depuración de procedimientos almacenados en Visual Studio?
- 27. WebMatrix y procedimientos almacenados
- 28. ¿La mejor manera de obtener la identidad de la fila insertada en el servidor vinculado?
- 29. Procedimientos almacenados en LINQ-to-SQL
- 30. Obtener la instrucción CREATE de T-SQL para los procedimientos almacenados SQLCLR
Pruebe esta herramienta gratuita: [http://servantt.com] (http://servantt.com/?so) - le permite realizar ingeniería inversa de sus objetos, guardarlos en scripts, comparar bases de datos con scripts, inicie WinMerge para comparar, actualizar scripts o aplicar cambios a la base de datos. – drizin
Pregunta similar http://stackoverflow.com/questions/115369/do-you-use-source-control-for-your-database-items/328307#328307 –