我有一个在Ubuntu服务器上使用docker运行的spring-boot应用程序,MYSQL DB在服务器上运行,而不是在docker镜像中运行。我用于spring-boot应用程序的模式会随机删除,我总是要使用备份转储来恢复它。我无法确定这个奇怪问题背后的原因。我试过谷歌搜索这个问题,我找不到任何关于这个问题。
什么可能导致数据库被丢弃?!?
它像一周一次随机!可能不止于此。我甚至无法追踪它。
我的application.yml有这个:
spring:
datasource:
url: jdbc:mysql://localhost/schemaname?useSSL=false
username: username
password: password
tomcat:
validation-query: SELECT 1
test-on-borrow: true
jpa:
show-sql: true
hibernate:
ddl-auto: update
properties:
hibernate:
dialect: org.hibernate.dialect.MySQL5Dialect
答案 0 :(得分:1)
您不应将ddl-auto
用于生产应用。
来自Java Persistence with Hibernate。
警告:我们已经看到Hibernate用户尝试使用SchemaUpdate 自动更新生产数据库的模式。这个可以 快速结束灾难,你的DBA不会允许。
此选项仅用于开发。
如果您不想手动运行SQL迁移,则应考虑使用flyway或liquibase等工具。