I am looking at the Hibernate hbm2ddl.auto
configuration property and its possible values:
validate
update
create
create-drop
What do all these values do?
The Hibernate Reference Documentation only talks briefly about create-drop
, but doesn't say anything about the other values:
hibernate.hbm2ddl.auto
Automatically validates or exports schema DDL to the database when the
SessionFactory
is created. Withcreate-drop
, the database schema will be dropped when theSessionFactory
is closed explicitly.e.g.
validate
|update
|create
|create-drop
I found very useful explanations in these Stack Overflow questions:
- Hibernate hbm2ddl.auto possible values and what they do?
- Schema is not dropped on hbmddl.auto = create.drop
But still nothing in the official documentation.
The link you provided is already the official documentation. So, there's nothing more official and comprehensive as-of today.
So I guess the answer to your question is two-fold:
- either file an enhancement request in the Hibernate issue tracker (better with a proposal)
- or read the corresponding code
I know this isn't the perfect answer you dreamt about, but this is actually all you have today.
But the good news is that the project is open-source, so you have all you need to help improve it :-).
For hbm2ddl.auto
property the list of possible options is:
- validate: validate that the schema matches, make no changes to the schema of the database, you probably want this for production.
- update: update the schema to reflect the entities being persisted
- create: creates the schema necessary for your entities, destroying any previous data.
- create-drop: create the schema as in create above, but also drop the schema at the end of the session. This is great in early development or for testing.
The documentation has been updated to include this information. Here is a link to the official, current documentation for this feature.
hibernate.hbm2ddl.auto (e.g. none (default value), create-only, drop, create, create-drop, validate, and update)
Setting to perform SchemaManagementTool actions automatically as part of the SessionFactory lifecycle. Valid options are defined by the externalHbm2ddlName value of the Action enum:
none No action will be performed. create-only Database creation will be generated. drop Database dropping will be generated. create Database dropping will be generated followed by database creation. create-drop Drop the schema and recreate it on SessionFactory startup. Additionally, drop the schema on SessionFactory shutdown. validate Validate the database schema update Update the database schema
来源:https://stackoverflow.com/questions/18077327/hibernate-hbm2ddl-auto-possible-values-and-what-they-do