Pregunta

Estoy tratando de implementar el control de origen de la base de datos.

la herramienta que necesito debería crear un archivo separado para cada objeto en la base de datos, preferiblemente organizado en carpetas, como

procedimientos almacenados funciones puntos de vista tablas

y sería genial poder también volcar los resultados de ciertas consultas, para realizar un seguimiento de los cambios de datos en varias tablas de configuración ...

Me pregunto si ya existe una herramienta que pueda manejar este tipo de cosas ...

-

solo para aclarar algunas cosas ...

Ya estoy usando sql delta para manejar los scripts de actualización ...

Me gustaría tener scripts de la base de datos para poder usarlos con Subversion, para poder rastrear qué objetos cambiaron con cada commit, sin tener que estudiar los scripts de actualización ...

Estoy desarrollando un buen script vb con objetos de administración distribuida de SQL (SQL-DMO), les diré cómo funciona ...

Lo bueno de tener mi propia solución es que también puedo incluir los resultados de las consultas o la ejecución de procedimientos almacenados, para rastrear los cambios en ciertas tablas, la configuración del servidor, el crecimiento de la base de datos, bueno, lo que sea que pueda volcar un archivo de texto ...

No hay solución correcta

Otros consejos

Utilizo ScriptDB para exactamente este propósito. Lo único que tuve que cambiar fue eliminar la fecha de las secuencias de comandos en los archivos generados. De lo contrario, los archivos siempre se marcan como modificados en Subversion.

Aquí está el lote que uso. svnclient es la herramienta de codeplex svncompletesync.codeplex.com , para registrar todos los archivos de una carpeta en Subversion. :

svn checkout " http: // svn / myproject " D: \ Projekte \ db_svn \ myproject

ScriptDB " D: \ temp \ scriptdb " myserver mydb mylogin mypwd

del " D: \ Projekte \ db_svn \ myproject \ Schema Objects \\ *. sql " / q / s

xcopy " D: \ temp \ scriptdb \ myserver \ mydb \ Schema Objects \\ *. sql " " D: \ Projekte \ db_svn \ myproject \ Schema Objects " / e / y / i

svnclient " D: \ Projekte \ db_svn \ myproject " -m " commit durch svncompletesync "

Si te entiendo correctamente, necesitas dos cosas: primero debes generar los scripts a partir de metadatos de la base de datos (tablas, vistas, procesos almacenados, etc.), y una vez hecho esto, debes usar algún tipo de metodología consistente para versiones de script.

Si ya tiene sus metadatos y datos en la base de datos, no veo qué le impediría usar SQL Management Studio (o SQL Enterprise Manager) para generar scripts de los objetos de la base de datos: consulte Cómo: Generar un script (SQL Server Management Studio ) . Esto debería funcionar para SQL Server 2000, 2005, etc. Tenga en cuenta que puede personalizar la configuración de generación de scripts, p. en lugar de una secuencia de comandos enorme, puede usar secuencias de comandos individuales para cada objeto. Es posible que deba escribir algunos scripts para llenar tablas con datos (no estoy seguro de si el asistente admite la extracción de datos).

Una vez que obtenga los scripts, probablemente tendrá que distribuirlos manualmente entre carpetas específicas y, una vez hecho esto, debería estar listo para verificarlos en el control de código fuente. A partir de este momento, debe averiguar la metodología para las posteriores instalaciones, actualizaciones y reparaciones de la base de datos. Esta es una tarea bastante compleja, que abarca más tiempo que una simple respuesta. Si está interesado en posibles opciones, consulte mi Instalador de la base de datos revisado publicación que menciona varios enfoques y hace referencia a varios artículos que abordan versiones de bases de datos (disculpen la autopromoción, pero no quiero repetir la misma información).

La mayoría de las herramientas en este campo no son gratuitas, pero hay un proyecto de código abierto, ScriptDB , que puede satisfacer sus necesidades para generar scripts.

Esto no resolverá el problema de cómo aplicar los scripts a la base de datos en el orden correcto; si no desea pagar, es posible que tenga que improvisar el suyo.

Puedes probar Wizardby , que no es precisamente lo que estás pidiendo , pero aún puede ayudarlo a manejar la gestión de cambios en la base de datos. Puede aplicar ingeniería inversa al esquema de su base de datos (bueno, un subconjunto del mismo) y luego escribir las llamadas "migraciones". en un DSL especial independiente de la plataforma:

version 20090331140131:
    oxite_FileResource:
        FileResourceID type => PK, primary-key => true
        SiteID type => Guid, nullable => false
        FileResourceName type => LongName
        CreatorUserID references => oxite_User
        Data type => Binary
        ContentType type => AnsiString, length => 25, nullable => false
        Path type => String, length => 1000, nullable => false
        State type => Byte, nullable => false
        CreatedDate type => DateTime, nullable => false
        ModifiedDate type => DateTime, nullable => false 

    oxite_UserFileResourceRelationship:
        UserID references => oxite_User
        FileResourceID references => oxite_FileResource:
            add index unique => true

        index "" columns => [UserID, FileResourceID], unique => true, clustered => true
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top