2017-10-10 4 views
0

우분투 서버에서 도커를 사용하여 스프링 부팅 응용 프로그램을 실행 중입니다. MYSQL DB는 도커 이미지가 아닌 서버에서 실행됩니다. 스프링 - 부트 응용 프로그램에 사용하고있는 스키마는 무작위로 삭제 된 상태로 유지되며 항상 백업 된 덤프를 사용하여 복원해야합니다. 나는이 이상한 문제의 원인을 알 수 없다. 나는이 문제에 대해 인터넷 검색을 시도했지만이 문제에 관해서는 아무 것도 찾을 수 없었다.MYSQL 스키마가 계속 떨어짐

DB를 삭제할 수있는 원인은 무엇입니까?

일주일에 한 번 같은 무작위입니다. 그 이상이 될 수도 있습니다. 나는 그것을 추적 할조차 수 없다.

내 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 
+2

프로젝트 파일에서'ddl-auto' 및'hbm2ddl' 문자열을 검색 할 수 있습니까? –

+0

docker에서 mysql이 실행되고 있지 않기 때문에 docker 태그가 왜 필요합니까? – BMitch

+0

@BMitch Docker 태그는 Docker를 사용하기 시작했을 때이 문제가 발생하기 시작했기 때문에 누군가가 Docker를 사용하여이 문제를 겪었을 수 있습니다. – Kareem

답변

1

당신은 생산 앱 ddl-auto을 사용할 수 없습니다.

견적 : Java Persistence with Hibernate.

경고 : 우리는 Hibernate 사용자가 SchemaUpdate를 사용하여 으로 프로덕션 데이터베이스의 스키마를 자동으로 업데이트하는 것을 보았습니다. 이것은 재해로 빨리 끝날 수 있으며 DBA가 허용하지 않습니다.

이 옵션은 개발 용으로 만 사용됩니다.

수동으로 SQL을 실행하고 싶지 않은 경우에는 flyway 또는 liquibase와 같은 도구를 고려해야합니다.

+0

프로덕션 환경에서는 사용하지 않으므로 지금 테스트하고 있습니다. 그렇습니다. 나는 그것을 찌르면 안되는 모든 곳에서 읽었습니다. – Kareem

관련 문제