Grails 2.4.4를 사용하고 2.2.0에서 내 도메인 클래스를 이식했습니다.Grails 2.4.4 DataSource "create-drop"은 FK가있는 모든 테이블을 삭제하지 못함
MySQL을 데이터 소스로 사용하여 DataSource의 "create-drop"구성에 문제가 있습니다.
grails stop-app
명령을 실행할 때마다 총 35 개의 테이블 중에서 22 개의 테이블이 스키마에 남아 있습니다.
Hibernate 클래스에 대한 디버그 모드를 활성화 한 후 stop-app 프로세스가 끝나면 모든 35 개의 테이블에 대해 drop table if exists <tablename>
을 생성했지만 삭제 테이블의 성공 여부에 관계없이 로그에 오류/확인이 없었습니다.
왼쪽 테이블에는 FK 연관이 있으며 특정 순서로 제거해야합니다. 동일한 도메인 클래스 구조로 이전 2.2.0 버전의 grails에서는이 문제가 발생하지 않았습니다.
지금은 수동으로 떨어 뜨리고 있습니다. 실행 앱이 부팅 스트랩 데이터에 문제를 일으킬 때마다 만들기 전입니다.
이 문제를 디버그 할 수있는 포인터 또는이 문제가 발생했을 때를위한 유스 케이스를 알려주세요.
당신은 테이블을 삭제하기 전에 외래 키를 삭제 DDL 문, 예를 들어 있어야한다 '테이블 테이블 이름 변경 외래 키 FK_hrogx8ddq6cptuh5ru8uycn6s'. 'grails schema-export'를 실행하고'target/ddl.sql'을보고 Hibernate가 생성하는 SQL을 봅니다. –
감사합니다. @BurtBeckwith. 'grails schema-export'를 실행하고 파일을 생성했습니다. 시작 35 행은'drop table if exists'입니다. 파일에'alter table tablename drop foreign key '이 없습니다. –
v1p
이것은 파일 구조입니다 : 첫 번째'drop table if exists','create table '다음에 'alter table add UK constraints' & 인덱스 생성이 있습니다. 마지막에'alter table add FK constrains'가 있습니다. –
v1p