Au lieu de mettre à jour automatiquement DB, génère un script SQL avec NHibernate fluide pour l'environnement de production

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

Question

J'ai jeté un coup d'œil sur la documentation différente, mais n'avez rien trouvé qui l'aboutit. Je regarde à l'aide de fluentmigratrice pour les projets futurs, cependant, des pratiques de mise en scène / de production doivent faire des mises à jour de schéma via un DBA. Je suis autorisé à faire ce que je veux pour d'autres environnements tels que tests, dev et locaux.

Le but de l'outil est entièrement vaincu si je dois écrire les scripts pour effectuer les modifications de toute façon. Cependant, cela m'a eu lieu, et si je ne l'ai pas fait? Donc, ma question est la suivante: est-il possible d'avoir fluent migrer de cracher un script SQL dans un fichier, au lieu d'exécuter réellement la transaction?

Dans mon expérimentation, j'ai créé une application de console qui utilise le même assemblage DAL que le même projet et exploite la logique des migrateurs, de sorte que chaque fois que j'exécute l'application de la console, il met à jour la DB à partir de zéro ou du point le plus proche en fonction sur mon choix. Nous utilisons TeamCity, nous avons donc pensé que cela pourrait être cool de pouvoir exécuter l'application et de placer le script (comme artefact) dans un dossier en tant que pas dans le processus de construction de notre DBA dans les environnements mettant à jour le schéma.

Était-ce utile?

La solution

the Le coureur de ligne de commande fluentmigrator générera des scripts SQL,Sans appliquer les modifications apportées à la base de données, si vous utilisez:

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

Et, si vous installez le package fluentmigrator.tools en plus du fluentmigrator package , vous aurez accès au fonctionnaire de la ligne de commande du répertoire de sortie du projet de migration (Migrate.exe).

Note: Les scripts générés contiendront des inserts dans la table de version fluentmigrator.

Autres conseils

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top