Anonym bruker
Hva er de mulige verdiene for Hibernate hbm2ddl.auto-konfigurasjonen, og hva gjør de?
Jeg vil virkelig vite mer om oppdateringen, eksporten og verdiene som kan gis til hibernate.hbm2ddl.auto
Jeg trenger å vite når jeg skal bruke oppdateringen og når ikke? Og hva er alternativet?
Dette er endringer som kan skje over DB:
- nye tabeller
- nye kolonner i gamle tabeller
- kolonner slettet
- datatype for en kolonne endret
- en type av en kolonne endret sine attributter
- tabeller slettet
- verdiene i en kolonne endret
Hva er den beste løsningen i hvert enkelt tilfelle?
1037
3
Fra fellesskapets dokumentasjon:
Så listen over mulige alternativer er,
Disse alternativene ser ut til å være verktøy for utviklere og ikke for å legge til rette for databaser på produksjonsnivå, det kan være lurt å se på følgende spørsmål; Hibernate: hbm2ddl.auto=update in production?.
Konfigurasjonsegenskapen heter
hibernate.hbm2ddl.auto
.I vårt utviklingsmiljø setter vi
hibernate.hbm2ddl.auto=create-drop
til å slippe og opprette en ren database hver gang vi distribuerer, slik at databasen vår er i en kjent tilstand.I teorien kan du angi
hibernate.hbm2ddl.auto=update
for å oppdatere databasen din med endringer i modellen din, men jeg ville ikke stole på det på en produksjonsdatabase. En tidligere versjon av dokumentasjonen sa at dette var eksperimentelt, i det minste; Jeg vet ikke den nåværende statusen.Derfor, for vår produksjonsdatabase, ikke angi
hibernate.hbm2ddl.auto
- standard er å ikke gjøre noen databaseendringer. I stedet oppretter vi manuelt et SQL DDL-oppdateringsskript som bruker endringer fra en versjon til den neste.Jeg vil bruke liquibase for å oppdatere db-en din. hibernate&# 39s skjemaoppdateringsfunksjon er egentlig bare ok for en utvikler mens de utvikler nye funksjoner. I en produksjonssituasjon må db-oppgraderingen håndteres mer forsiktig.