Em vez de atualizar automaticamente o banco de dados, gerar script sql com fluente n-hibernate para ambiente de produção

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

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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top