作为记录,该
spring.jpa.hibernate.ddl-auto属性是Spring Data
JPA特定的,并且是他们指定一个值的方法,该值最终将在其已知的属性下传递给Hibernate
hibernate.hbm2ddl.auto。
值
create,
create-drop,
validate,和
update基本上影响架构管理工具将如何处理在启动数据库模式。
例如,该
update操作将查询JDBC驱动程序的API以获取数据库元数据,然后Hibernate将根据读取带注释的类或HBM
XML映射来比较它创建的对象模型,并尝试动态调整架构。
update例如,该操作将尝试添加新的列,约束等,但绝不会删除以前可能已存在但不再作为先前运行的对象模型一部分的列或约束。
通常,在测试用例场景中,您可能会使用
create-drop它来创建架构,测试用例添加一些模拟数据,运行测试,然后在测试用例清理期间删除架构对象,从而留下一个空数据库。
在开发中,通常会看到开发人员
update用来自动修改架构以在重新启动后添加新的内容。但是要再次理解,这不会删除以前的执行中可能不再存在的列或约束。
在生产中,通常强烈建议您使用
none或根本不指定此属性。这是因为DBA通常会检查迁移脚本以进行数据库更改,尤其是在跨多个服务和应用程序共享数据库的情况下。



