2010-08-02 3 views
1

Liquibase 업데이트Liquibase Servlet Listener에 설명 된대로 발급 할 수 있습니다.Liquibase : EntityManager 구축 전에 Servlet Listener를 실행하는 방법

<listener> 
    <listener-class>liquibase.servlet.LiquibaseServletListener</listener-class> 
</listener> 

이렇게하면 효과적으로 내 변경 로그를 실행합니다.

그러나 이것은 후에 EntityManager를 설정하면 이 발생합니다. 필자가 Persistence 공급자가 데이터베이스 스키마의 유효성을 검사하도록하려면 분명히 너무 늦었습니다.

<property name="hibernate.hbm2ddl.auto" value="validate"/> 

... 테이블이 아직 존재하지 않습니다.

을 업데이트하기 위해 Liquibase를 만들 수 있습니까? 전에 EntityManager가 초기화 되었습니까?

PS는 : AppServer를는 ======== JBoss6

========================= [UPDATE]는 다음과 같이 =================== 아래 나단과 함께 간단한 논의를 바탕으로

, 나는 질문을 바꿔 할 수 있습니다 :

JBoss 시작 시퀀스에서 코드 훅을 알고있는 사람이 있습니까 앞에 초기화 EntityManager?

그런 경우 Liquibase 업데이트 논리를 해당 위치로 이동할 수 있습니까?

답변

0

EntityManager는 리스너 (예 : 봄 리스너)에서 시작 되었습니까?

일반적으로 응용 프로그램 서버는 web.xml 파일에 나열된 순서대로 수신기를 시작하므로 최대 절전 모드로 시작하기 전에 liquibase 수신기가 나열되어 있는지 확인하십시오.

+0

PersistenceUnit (및 관련 EntityManager)은 JBOSS 부팅 프로세스 초기에 시작됩니다. 그 후에 만 ​​웹 앱이 초기화됩니다 ... 8- / – Jan

관련 문제