Chiar vreau să știu mai multe despre actualizare, export și valorile care pot fi date la hibernate.hbm2ddl.auto
Am nevoie să știu când să folosesc update și când nu? Și care este alternativa?
Acestea sunt modificări care s-ar putea întâmpla peste DB:
În fiecare caz, care este cea mai bună soluție?
hibernate.hbm2ddl.auto Validează automat sau exportă DDL de schemă în baza de date atunci când SessionFactory este creat. Cu create-drop, schema bazei de date va fi eliminată atunci când SessionFactory este închisă în mod explicit.
De exemplu, validate | update | create | create-drop
Așadar, lista de opțiuni posibile este următoarea,
Aceste opțiuni par a fi destinate a fi instrumente pentru dezvoltatori și nu pentru a facilita orice baze de date la nivel de producție, poate doriți să aruncați o privire la următoarea întrebare; Hibernate: hbm2ddl.auto=update in production?
Proprietatea de configurare se numește hibernate.hbm2ddl.auto
.
În mediul nostru de dezvoltare am setat hibernate.hbm2ddl.auto=create-drop
pentru a renunța și a crea o bază de date curată de fiecare dată când implementăm, astfel încât baza noastră de date să fie într-o stare cunoscută.
Teoretic, puteți seta hibernate.hbm2ddl.auto=update
pentru a vă actualiza baza de date cu modificările aduse modelului, dar nu aș avea încredere în acest lucru pe o bază de date de producție. O versiune anterioară a documentației spunea că acest lucru era cel puțin experimental; nu cunosc starea actuală.
Prin urmare, pentru baza noastră de date de producție, nu setați hibernate.hbm2ddl.auto
- valoarea implicită este de a nu face nicio modificare a bazei de date. În schimb, creăm manual un script de actualizare SQL DDL care aplică modificările de la o versiune la alta.
Aș folosi liquibase pentru actualizarea bazei de date. caracteristica de actualizare a schemelor hibernate's este într-adevăr doar o.k. pentru un dezvoltator în timp ce dezvoltă noi caracteristici. Într-o situație de producție, actualizarea db trebuie să fie tratată cu mai multă atenție.