繁体   English   中英

“spring.jpa.hibernate.ddl-auto”属性用于迁移?

[英]"spring.jpa.hibernate.ddl-auto" property is used for migration?

我不确定这个问题,因为我不完全熟悉迁移的概念。 我刚刚知道这用于更新数据库而无需从数据库控制台手动删除表。 既然我已经知道了,我是这么想的,如果我把这个属性设置为“create-drop”,我就可以实现迁移。 我对么? 任何人都可以向我解释或建议任何参考吗?

对于记录,spring.jpa.hibernate.ddl-auto属性是881821203188数据JPA特定方式,并将其指定为881881881881881818181818181818181818181818181818181818.1818181818181818 y.and。

createcreate-dropvalidateupdate主要影响模式工具管理在启动时如何操作数据库模式。

例如,更新操作将查询 JDBC 驱动程序的 API 以获取数据库元数据,然后 Hibernate 比较它基于读取注释类或 HBM XML 创建的 object model 并尝试调整模式。

例如,更新操作将尝试添加新的列、约束等,但永远不会删除以前可能存在但不再作为 object model 的一部分从先前运行中删除的列或约束。

通常在测试用例场景中,你可能会使用create-drop来创建你的模式,你的测试用例添加一些模拟数据,你运行你的测试,然后在测试用例清理期间,模式对象被删除,留下一个空数据库。

在开发中,经常会看到开发人员使用update来自动修改模式以在重启时添加新内容。 但请再次理解,这不会删除不再需要的先前执行中可能存在的列或约束。

在生产中,通常强烈建议您使用或干脆不指定此属性。 这是因为 DBA 的常见做法是检查数据库更改的迁移脚本,尤其是当您的数据库在多个服务和应用程序之间共享时。

“spring.jpa.hibernate.ddl-auto”配置属性的可能值如下:

  • none - 不执行任何操作。 不会生成架构。
  • create-only - 将生成数据库模式。
  • drop - 数据库模式将被删除。
  • create - 数据库模式将被删除并在之后创建。
  • create-drop - 数据库模式将被删除并在之后创建。 关闭 SessionFactory 后,数据库模式将被删除。
  • 验证- 数据库模式将使用实体映射进行验证。
  • update - 数据库模式将通过将现有数据库模式与实体映射进行比较来更新。

这些是需要知道的一些基本的东西,

验证:验证模式,不对数据库进行任何更改。 更新:更新模式。 创建:创建模式,销毁以前的数据。 create-drop:当显式关闭 SessionFactory 时删除架构,通常是在应用程序停止时。 none:不对模式做任何事情,不对数据库进行任何更改

这些选项似乎旨在成为开发人员工具,而不是为了促进任何生产级数据库。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM