Uso o hibernate pra criar minhas tablelas durante o desenvolvimento, mas sempre que eu faço alterações significativas em minahs entidades tenho que recriar o BD senão acontecem coisas bizarras tipo:
EntityA tinha relação com EntityB, o tipo de EntityB muda pra EntityB2
dá pau
EntityC tinha dois campos: nome e data, mas o data é renomeado pra dataCriacao
a tabela fica com duas colunas (data e dataCriacao). As entradas antigas vão ficar com dataCriacao null e as novas vão ficar com data null
Quando meu sistema for pra produção eu (obviamente) não vou poder ficar recriando o BD, então eu pergunto: comofaz? :?
Confere se nos teus mapeamentos, os nome dos campos não estão diferentes do nome das colunas no banco.
rodpuc
Eu uso anotações.
R
RafaelViana
O problema é que o hibernate marcado como update não funciona 100%.
não altera colunas, não deleta colunas ou tabelas, não altera FK’s, …
Tem alguns projetos em Java que simulam o db:migrate do Rails. Dê uma olhada em alguns projetos e veja se algum se adapta a voce.
P.S: Eu gostei mais do migrate4j mas ainda não testei.
fantacone
Olá Amigos…
Veja… se há alteração nas entidades é mais do que correto o hibernate alterar o seu banco…
Se o resultado final está ficando diferente do esperado é pq talvez alguma coisinha esteja errada…
Em produção o correto é que você utilize uma opção do hibernate para apenas validar o banco… Isso serve para que caso exista uma tabela que por descuido um desenvolvedor alterou em resultado de um erro em uma Entity, a aplicação não perca dados…