如何在第一次休眠时创建数据库模式并在模式修改的情况下进一步更新它? [英] How to create database schema in hibernate first time and further update it in case of schema modification?
问题描述
我想第一次在休眠中创建数据库模式.此外,如果架构中有任何修改,例如添加新表或删除某些列,我想更新现有架构,保持以前的数据不变.
I want to create database schema in hibernate first time. And further, if there is any modification in the schema, like addition of a new table or deletion of some column, I want to update the existing schema keeping the previous data intact.
根据这个问题中给出的选项,看起来我可以创建破坏先前数据的架构,或者我可以更新架构.
As per options given at this question, it looks like either I can create schema destroying the previous data, or I can update the schema.
是否有任何价值可以兼得?
Is there any value which can do both?
推荐答案
其实我刚查了<property name="hibernate.hbm2ddl.auto" value="update"/>
是偶数第一次创建表,然后如果表/模式存在,它会更新.
Actually I just checked <property name="hibernate.hbm2ddl.auto" value="update" />
is even creating tables for the first time and then later if table/schema exist it does update.
Update
属性在启动或添加新模型时适用.您希望保留较早保存的实体实例.这是默认的架构创建样式.
Update
property is applicable when starting or adding a new model. You want to retain the earlier saved entity instances. This is the default schema creation style.
如果需要,它会尝试更新架构.支持以下更新:
It tries to update the schema, if required. The following updates are supported:
看看我的一些观察
- 添加字段 - 表中添加了一个新列.
- 重命名字段 - 将新列添加到表中,而原始列保留但不再使用.注意:旧列中的数据不会迁移到新列.
- 删除字段 - 该列保留但未使用.
- 更改字段类型 - 列的类型不会更改,这可能会导致类型不匹配异常.
- 创建一个实体 - 创建一个新表.
- 重命名实体 - 创建一个新表,而原始表保持不变.
- 将实体移动到另一个文件夹 - 创建一个新表,而原始表保留.
- 删除实体 - 表格保留.
- Add a field - A new column is added to the table.
- Rename a field - A new column is added to the table, while the original column remains but is not used any longer. Note: The data from the old column is not migrated to the new column.
- Remove a field - The column remains but is not used.
- Change a field type - The type of the column does not change, which may result in type-mismatch exceptions.
- Create an entity - Creates a new table.
- Rename an entity - Creates a new table, while the original table remains.
- Move an entity to another folder - Creates a new table, while the original table remains.
- Delete an entity - The table remains.
这篇关于如何在第一次休眠时创建数据库模式并在模式修改的情况下进一步更新它?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!