Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java &引用;spring.jpa.hibernate.ddl auto“;属性是否用于迁移?_Java_Spring Boot_Jpa_Migration - Fatal编程技术网

Java &引用;spring.jpa.hibernate.ddl auto“;属性是否用于迁移?

Java &引用;spring.jpa.hibernate.ddl auto“;属性是否用于迁移?,java,spring-boot,jpa,migration,Java,Spring Boot,Jpa,Migration,我不确定这个问题,因为我不太熟悉迁移的概念。我刚刚知道它用于更新数据库,而无需从数据库控制台手动删除表。因为我已经知道了这一点,我想,如果我将这个属性设置为“createdrop”,我就可以实现迁移。我说得对吗?有人能给我解释一下或者建议参考吗?记录在案,spring.jpa.hibernate.ddl-auto属性是spring数据的jpa特定属性,是他们指定最终将传递给hibernate的属性hibernate.hbm2ddl.auto下的值的方式 值create、create drop、v

我不确定这个问题,因为我不太熟悉迁移的概念。我刚刚知道它用于更新数据库,而无需从数据库控制台手动删除表。因为我已经知道了这一点,我想,如果我将这个属性设置为“createdrop”,我就可以实现迁移。我说得对吗?有人能给我解释一下或者建议参考吗?

记录在案,spring.jpa.hibernate.ddl-auto属性是spring数据的jpa特定属性,是他们指定最终将传递给hibernate的属性hibernate.hbm2ddl.auto下的值的方式

createcreate dropvalidateupdate基本上影响模式工具管理在启动时操作数据库模式的方式

例如,更新操作将查询JDBC驱动程序的API以获取数据库元数据,然后Hibernate根据读取注释类或HBM XML映射来比较它创建的对象模型,并尝试动态调整模式

例如,更新操作将尝试添加新列、约束等,但不会删除以前可能存在但不再作为上一次运行对象模型一部分的列或约束

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

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


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

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

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

这些是我们需要了解的一些基本情况

验证:验证架构,不更改数据库。 更新:更新模式。 创建:创建模式,销毁以前的数据。 createdrop:当SessionFactory显式关闭时(通常在应用程序停止时)删除模式。 无:不处理架构,不更改数据库


这些选项似乎是开发人员的工具,而不是为了方便任何生产级数据库。

Hi您可以在这里找到类似的问题