Mantener los paquetes SSIS bajo el control de código fuente

Guardo todos los paquetes SSIS en el repositorio de Subversion, así como sus archivos de configuración. El archivo de configuración casi siempre se almacena en la misma carpeta donde se encuentra el paquete.

El problema es que SSIS parece almacenar siempre la ruta al archivo de configuración (la que se guarda en el paquete) como una ruta absoluta.

Cuando alguien más revisa la carpeta con el paquete en una ubicación diferente a la que tenía en mi PC de desarrollo, el archivo de configuración no se detecta (porque mi ruta absoluta está almacenada y no existe en la otra PC de desarrollo). Entonces, otro desarrollador tiene que eliminar esta configuración y agregarla nuevamente desde donde se encuentra ahora en su disco duro local. Luego se guarda el paquete modificado, lo que hará que se confirme una nueva versión. Cuando obtenga esa versión de SVN, ya no coincidirá con la ruta local en mi PC.

En una nota relacionada: otro desarrollador también puede querer cambiar los valores en el archivo de configuración. Si luego obtengo la última versión de todo, el paquete SVN ya no funcionará en mi PC.

¿Cómo solucionas estos inconvenientes?

preguntado el 12 de junio de 12 a las 19:06

3 Respuestas

Otra solución es guardar su configuración en una base de datos con una variable de entorno como primera configuración para decirle en qué base de datos buscar, eso es lo que hacemos. Tenemos secuencias de comandos para completar ssisconfig para cada servidor en nuestro control de código fuente, pero el paquete usa los datos de la tabla real para la base de datos en la variable de entorno que estamos usando.

Respondido el 12 de junio de 12 a las 20:06

Cualquiera que haya escuchado mis presentaciones de SQL Saturday sabe que no me importa mucho XML y esta es una de las razones. Un truco para usar la configuración XML con diferentes ubicaciones es usar una variable de entorno (configuración indirecta) para dirigir SSIS donde puede buscar ese recurso. La gran, gran desventaja de este enfoque es que, por lo general, necesitaría crear una variable de entorno para cada conjunto de archivos de configuración o tener un archivo .dtsconfig masivo y sonoro que se vuelve doloroso para el control de versiones.

La opción que prefiero si la configuración XML es imprescindible es que se elimine la "variabilidad". Los desarrolladores y administradores se reúnen y todos están de acuerdo en que "habrá una carpeta dondequiera que se realice SSIS para almacenar archivos de configuración y esa ubicación es X" y luego es solo cuestión de resolver X. En un trabajo anterior, usamos D:\ssisdata \configs

El enfoque de una tabla para configuraciones de @HLGEM es sin duda mi enfoque favorito para la configuración de SSIS (hasta que llegue a 2012 y su modelo de implementación de proyectos donde la configuración es un animal completamente diferente)

Respondido el 12 de junio de 12 a las 21:06

Agrego una carpeta llamada "config" debajo de mi carpeta de proyectos, la agrego al control de código fuente y mantengo el archivo de configuración en esta carpeta. También puede agregarlo al proyecto SSIS si lo desea.

Creo que es una buena solución porque todo el mundo puede tener esta carpeta y descargar el archivo de configuración.

Cuando se implemente el paquete, leerá el archivo de configuración desde donde informa en el manifiesto de implementación para que esta solución no afecte su desarrollo.

Respondido el 12 de junio de 12 a las 19:06

Mencioné en mi OP: ya almacené el archivo de configuración en SVN. Tenerlo en la subcarpeta no resuelve ninguno de los problemas que mencioné. - joe schmoe

humm, ¿no tienen todos ustedes una carpeta estándar para almacenar sus proyectos? - Diego

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.