2010-05-20 1 views
3

Rails3-pre 및 최신 DataMapper를 사용하여 MySql에서 Postgresql으로 내 응용 프로그램을 마이그레이션하려고합니다.DataMapper : auto_migrate!를 사용하십시오! many-to-many 의존성을 가진?

나는 many = many 관계를 통해 관련된 여러 모델을 가지고 있습니다 : through => Resource, 이는 DataMapper가 두 모델에 대해 외래 키가있는 조인 테이블을 생성한다는 것을 의미합니다. 나는 auto_migrate 할 수 없다! 이러한 변경, 나는이 점점 계속 때문에 : 내가 생각할 수있는 모든 노력을, 그리고 내가 추가 할 때 일을 작업했다 생각

ERROR: cannot drop table users because other objects depend on it 
DETAIL: constraint artist_users_owner_fk on table artist_users depends on table users 
constraint site_users_owner_fk on table site_users depends on table users 
HINT: Use DROP ... CASCADE to drop the dependent objects too. 

: 제약 => : 필드 정의에 건너, 그러나 나는 것을 점점 계속 auto_migrate를 실행하려고하면 오류가 다시 발생합니다. 나는 그것을 생각했다 : 건너 뛰기는 그것이 부양 가족을 무시할 것이라는 것을 의미했다. 그러나 어쩌면 단지 행을 삭제하고 테이블을 삭제하지 않는 것에 적용 할 수 있을까?

필자는 db를 한번 핵으로 만든 후에 auto_migrate를 실행할 수 있다고 언급해야하지만, 그 후에는 오류가 발생합니다.

많은 제안이나 조언을드립니다.

편집 : Gibheer on datamapper irc 대신 auto_upgrade를 사용하는 것이 좋습니다. - 테이블을 다시 만들려고하지 않습니다.

답변

1

외부 데이터와 관계 가져 오기와 비슷한 문제가있어서 누군가 데이터를 삽입하기 전에 DataMapper.finalize.auto_migrate!을 시도해 볼 것을 제안했습니다. 도움이 되었으면 좋겠다

0

나는 똑같은 문제가 있었지만 auto_migrate 또는 auto_upgrade로는 해결되지 않았다.

많은 테이블의 자동 선택 이름과 동일한 이름의 모델을 만든 다음 테이블을 삭제하지 않고 모델 파일을 삭제했습니다. 이는 마이그레이션 프로세스를 진행할 때 문제가 발생했다고 생각합니다.

수동으로 교차 테이블을 제거한 후 문제없이 데이터로 모든 마이그레이션 (위/아래 여러 번)을 진행할 수있었습니다.