2017-06-16 22 views
0

在Hibernate中,如果我们将hbm2ddl.auto设置为create/create-drop,那么它将在启动时删除旧的模式并创建新的模式。这意味着,它也会删除数据?我怀疑是否它删除了所有的东西,那我们怎么才能回收旧的数据呢? (例如:用户注册详情)以及在生产环境中应该使用什么正确选项?hbm2ddl.auto = create/create-drop它会删除数据吗?

请纠正我,如果我错了。

+0

相反的DDL检查迁徙路线或liquibase。 – ByeBye

+0

如果你删除模式.....然后你失去了你的数据不是吗? – Antoniossss

+0

在这种情况下使用'update'它不会丢弃 – soorapadman

回答

0

什么是在生产环境中应该使用的正确选项?

恕我直言,生产环境唯一有效的选择是validate。其他任何事情都可能导致丢失数据/破坏数据库模式的潜在风险,这是由于错误配置,简单的错误或错字造成的。

使用迁移工具进行模式更新,因为它们在您的模式中提供“版本控制1”,允许在部署之前对其进行测试,并恢复更改。

+0

嗨,如果我想添加新的表和新的列到数据库中存在的表,然后hbm2ddl.auto =验证将适合(与不接触已存在的模式/表/数据的条件?) –

+0

直到你没有在生产中可以使用更新,在生产中使用只验证。更新添加新的列,表,索引dut不会丢弃,您现在已经不在映射中了 – xyz

相关问题