Em vez de atualizar automaticamente o banco de dados, gerar script sql com fluente n-hibernate para ambiente de produção
-
24-12-2019 - |
Pergunta
Eu já deu uma olhada nos diferentes documentação, embora não tenha encontrado nada que resolve este.Eu estou olhando para utilizar fluentmigrator para projetos futuros, apesar de preparo/práticas de produção tem que fazer as atualizações de esquema por meio de um dba.Eu estou autorizado a fazer o que eu quero para outros ambientes, tais como testes, dev e local.
O objetivo da ferramenta é totalmente derrotado, se eu tenho que escrever os scripts para fazer a mudança de qualquer maneira.No entanto, ocorreu-me, que se eu não?Então a minha pergunta é esta:É possível ter fluente migrar cuspir um script sql para um arquivo, em vez de realmente executar a transação?
Em meus experimentos, eu criei um aplicativo de console que usa o mesmo DAL montagem como o projeto principal, e aproveita o migrator lógica, de modo que, quando eu executar o aplicativo de console, ele atualiza o banco de dados do zero ou a partir do ponto mais próximo, dependendo da minha escolha.Nós usamos o TeamCity, então pensei que poderia ser legal para que ele execute o aplicativo e coloque o script ( como um artefato) em uma pasta como uma etapa do processo de compilação para o nosso DBA em ambientes atualizando o esquema mim seria desaprovado.
Solução
O FluentMigrator De Linha De Comando Do Corredor vai gerar scripts SQL, sem aplicar as alterações para o banco de dados, se você usar:
--preview=true
--output=true
--outputFilename=output1.sql
E, se você instalar o FluentMigrator.Pacote de ferramentas além de o FluentMigrator pacote, você vai ter acesso à Linha de Comando do Corredor a partir do projeto de migração de criação do diretório de saída (Migrate.exe
).
Nota: Os scripts gerados conterá insere a FluentMigrator tabela de versão.
Outras dicas
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.