在Hibernate自动或手动创建表?

时间:2013-03-15 10:23:31

标签: database hibernate production-environment

我目前正在开发一个servlet主页(spring + hibernate + mysql)。 我现在使用Hibernate属性hibernate.hbm2ddl.auto设置更新。 这工作正常,Hibernate创建并更新我的表。 但是,我已经阅读了多个地方,这是不建议在生产中,它是不安全的。 但是,如果我不选择此选项,我的表格就不会创建,而且我真的不想在服务器上手动创建表格。我的工作时间有限。

这通常是怎么做的?看起来手动添加所有表格是非常有用的。

1 个答案:

答案 0 :(得分:1)

在生产环境中,您通常已经存在具有大量数据但不想丢失的表,并且您希望迁移到新架构。 Hibernate无法为您自动执行此操作。它不知道以前在A列中的数据现在必须在新列B中。

因此,您需要创建一个迁移脚本。当然,您可以使用Hibernate为您在开发中生成新架构,查看与旧架构的差异,并由此创建脚本。但是,是的,在生产中使用应用程序并进行迁移需要完成一些工作。