为了账号安全,请及时绑定邮箱和手机立即绑定

Java 中,Spring 维护数据库无需任何脚本

Java 中,Spring 维护数据库无需任何脚本

拉莫斯之舞 2023-05-10 13:56:32
我正在用 Java 开发一个项目(使用 Spring Boot、Thymeleaf、Hibernate、JPA、MySql)。每次我创建一个新的模型类时,我都必须在数据库中创建一个表,或者如果我在模型类中进行任何更改,我必须自己更改表。有什么办法可以避免这种数据库相关的东西。例如,我将制作模型类并声明它们之间的关系,我的数据库表将自动生成。将来如果我对我的类进行任何更改,它们将自动应用于数据库而不会丢失任何数据。之前我在 PHP,Laravel 上工作。我需要做的就是 1) run command php artisan make:migration create_posts_table,2) declare columns like $table->string('title');,$table->foreign('user_id')->references('id')->on('users');然后 3) run command php artisan migrate。就是这样。不需要 SQL 脚本。我想知道Java,Spring是否有类似的东西。
查看完整描述

3 回答

?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

当然你可以做到。

spring.jpa.hibernate.ddl-auto=update在您的 application.properties 中使用。


查看完整回答
反对 回复 2023-05-10
?
喵喔喔

TA贡献1735条经验 获得超5个赞

理想方式

spring.jpa.hibernate.ddl-auto=none

在我看来,理想的方法是创建一个 SQL 文件,它将在启动时为我们创建模式。


让 Spring Boot 为您创建它

spring.jpa.hibernate.ddl-auto=update

spring.jpa.hibernate.ddl-auto= # DDL mode. This is actually a shortcut for the "hibernate.hbm2ddl.auto" property. Defaults to "create-drop" when using an embedded database and no schema manager was detected. Otherwise, defaults to "none".

其他可能的值:create、create-drop、validate

查看完整回答
反对 回复 2023-05-10
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

您可以使用 Flyway 进行迁移,它类似于 Laravel 迁移。

添加依赖项并将迁移 SQL 文件放入 classpath:db/migration。Flyway 将自动检查 sql 文件版本并应用任何挂起的迁移。


查看完整回答
反对 回复 2023-05-10
  • 3 回答
  • 0 关注
  • 133 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信