Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.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 如何从hibernate自动转移到生产_Java_Mysql_Spring_Hibernate_Spring Data Jpa - Fatal编程技术网

Java 如何从hibernate自动转移到生产

Java 如何从hibernate自动转移到生产,java,mysql,spring,hibernate,spring-data-jpa,Java,Mysql,Spring,Hibernate,Spring Data Jpa,我正在用MySQL构建一个SpringBootWeb应用程序,直到现在我都使用 spring.jpa.hibernate.ddl-auto=create-drop 在我的属性文件中,现在我想转到生产,我不能再使用这一行了,因为大家都知道它会将数据保存在内存中,最糟糕的是每次部署都会销毁所有数据并创建一个新表 对于开发人员来说,这很好,但我接下来需要做的是,因为我希望它的行为与我在ddl auto上的行为完全相同,但要持久保存数据,最重要的是永远不要删除数据 另外,hibernate.ddl-a

我正在用MySQL构建一个SpringBootWeb应用程序,直到现在我都使用

spring.jpa.hibernate.ddl-auto=create-drop
在我的属性文件中,现在我想转到生产,我不能再使用这一行了,因为大家都知道它会将数据保存在内存中,最糟糕的是每次部署都会销毁所有数据并创建一个新表

对于开发人员来说,这很好,但我接下来需要做的是,因为我希望它的行为与我在ddl auto上的行为完全相同,但要持久保存数据,最重要的是永远不要删除数据

另外,hibernate.ddl-auto与JPA存储库无关?
因为我经常使用Crud存储库,我需要它来继续使用Crud存储库,对吗?

根据我的说法,最好的做法是:

  • 使用选项
    spring.jpa.hibernate.ddl auto=create drop
    创建 开发环境中的DB模式和默认数据(如果有)
  • 在普通DDL中导出创建的DB架构
  • 将DDL交给DBA,以检查是否必须进行任何改进(例如。 添加一些索引,查看一些FK等)
  • 在DBA审查后调整JPA模型
  • 为“生产DBA”提供最终DDL,以便创建 生产环境中的最终正确模式也是如此
关于你的问题:

hibernate.ddl-auto与JPA存储库无关?原因 我经常使用Crud存储库,我需要它来继续工作 积垢储存库,会吗

当然,您可以使用crud存储库;此选项不会影响您的业务逻辑

我希望它有用


Angelo

您不想到处发送DDL。您将试图为您的脚本发明版本控制系统,具体命名它们或将它们放在文件夹中,您将难以与DBA通信,脚本将被破坏

您希望数据库定义代码成为代码库的一部分,以便将其置于版本控制之下(是的,git)


试着用这个。它将帮助您自动更新模式、数据以及与数据库相关的所有内容,并且它知道如何将应用程序的数据库从1.1迁移到1.2,也可以从1.1迁移到1.6。还有其他数据库迁移工具,如Flyway,您可以查找它们并四处玩。

非常感谢您的回答,我明白您的意思,我不知道如何做。。。我是否可以找到ddl模式?如何为DBA提供支持?如何调整模型?最后一行我如何给“生产DBA”提供最终的DDL?@Aharon您将在DB上创建环境DB模式(例如MySQL o PostgreSQL);通过使用任何DB客户端(或通过命令行),您可以连接到开发DB并使用export DB选项;导出模式后,就有了DDL(它是一个公共的.sql文件);然后,您可以将此文件交给DBA检查是否有任何改进,或者交给生产DBA(负责生产环境的DBA),以便让他们创建DBlast thing。。提取的架构是一个普通的.sql文件,不需要修改,除非sql客户机告诉我要修改?它是一个普通的.sql文件;您应该将此文件交给DBA,以便他们可以创建模式并检查是否需要任何改进。如果不需要改进,sql可以保留,因为它可能是不的重复。我已经看到了这个问题,这不是我现在问你的问题,我想我不能更新数据库。。。我可以第一次使用DDL,然后使用Liquibase?因为我现在还不知道该怎么用,而且它看起来也没那么火辣(如果你能分享一个好的图坦卡蒙或youtuve视频来解释我的目的!!!)你确实需要付出一些额外的努力才能开始使用它,但它是值得的。从他们网站上的文档开始,比如:然后从那里扩展。有很多例子和啧啧称奇。就像其他事情一样,你可以尝试一些小项目来获得感觉。嘿,伙计,你能帮我吗?我不能在我的项目中配置liquibase。我能联系你寻求帮助吗?