En lugar de actualizar automáticamente la base de datos, genere un script SQL con n-hibernate fluido para el entorno de producción.

StackOverflow https://stackoverflow.com//questions/22078299

Pregunta

Revisé la documentación diferente, aunque no encontré nada que aborde esto.Estoy considerando usar fluentmigrator para proyectos futuros, aunque para las prácticas de puesta en escena/producción tengo que realizar actualizaciones de esquema a través de un administrador de bases de datos.Se me permite hacer lo que quiera para otros entornos, como pruebas, desarrollo y local.

El propósito de la herramienta se frustra por completo si tengo que escribir los scripts para realizar los cambios de todos modos.Sin embargo, se me ocurrió, ¿y si no lo hiciera?Así que mi pregunta es esta:¿Es posible realizar una migración fluida para escupir un script SQL en un archivo, en lugar de ejecutar la transacción?

En mi experimentación, creé una aplicación de consola que usa el mismo ensamblado DAL que el proyecto principal y aprovecha la lógica del migrador, de modo que cada vez que ejecuto la aplicación de consola, actualiza la base de datos desde cero o desde el punto más cercano, según mi elección. .Usamos TeamCity, por lo que pensamos que sería genial ejecutar la aplicación y colocar el script (como un artefacto) en una carpeta como un paso en el proceso de compilación para nuestro DBA en los entornos que actualizar el esquema por mí mismo estaría mal visto.

¿Fue útil?

Solución

El Ejecutor de línea de comandos de FluentMigrator generará scripts SQL, sin aplicar los cambios a la base de datos, si usa:

  • --preview=true
  • --output=true
  • --outputFilename=output1.sql

Y si instalas el Paquete FluentMigrator.Tools además de Paquete FluentMigrator, tendrá acceso al Command Line Runner desde el directorio de salida de compilación del proyecto de migración (Migrate.exe).

Nota:Los scripts generados contendrán inserciones en la tabla de versiones de FluentMigrator.

Otros consejos

After reading Command Line Runner Options I'd use --verbose=true to output the sql script and --output to save it to a file. There seems to be no 'dry run' option however - you'll need to run the migration in some preproduction environment to obtain the script.

Give it a shot as I've admittedly never tried it.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top