Invece di aggiornare automaticamente DB, generare lo script SQL con fluente NHIBERNATE per l'ambiente di produzione

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

Domanda

Ho guardato durante la diversa documentazione, anche se non ha trovato nulla che si rivolga a questo. Sto cercando di usare fluentmigrator per progetti futuri, anche se per le pratiche di stadiazione / produzione devono fare aggiornamenti dello schema attraverso un DBA. Sono autorizzato a fare ciò che voglio per altri ambienti come test, dev e locali.

Lo scopo dello strumento è interamente sconfitto se devo scrivere gli script per eseguire comunque le modifiche. Tuttavia, mi è venuto in mente, cosa succede se non l'ho fatto? Quindi la mia domanda è questa: è possibile avere fluente migrare sputare uno script SQL a un file, invece di eseguire effettivamente la transazione?

Nella mia sperimentazione ho creato un'app console che utilizza lo stesso assemblaggio DAL come progetto principale e sfrutta la logica migrator, in modo che ogni volta che eseguo l'app console, aggiorna il DB da zero o dal punto più vicino a seconda a mia scelta. Usiamo TeamCity, quindi pensavo che potrebbe essere bello averlo fatto eseguire l'app e posizionare l'app e posizionare lo script (come artefatto) in una cartella come passo nel processo di costruzione per il nostro DBA negli ambienti che aggiornano lo schema da solo.

È stato utile?

Soluzione

the fluentmigrator riga di comando runner genererà script SQL,Senza applicare le modifiche al database, se si utilizza:

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

E, se si installa fluentmigrator.tools packable oltre al Pacchetto fluentmigrator , avrai accesso al runner della riga di comando dalla directory di output build del progetto di migrazione (Migrate.exe).

Nota: Gli script generati conterranno inserti nella tabella della versione del fluentmigrator.

Altri suggerimenti

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top