2012-10-08 3 views
3

현재 Doctrine과 함께 Symfony2를 사용하고 있습니다. Doctrine에서 관계를 사용하지 않고 데이터베이스에 직접 외래 키를 추가했습니다. doctrine:schema:update --force을 실행할 때마다 내 모든 외래 키가 삭제됩니다. 이는 doctrine:schema:update --dump-sql을 실행하여 확인됩니다.Doctrine 2 외래 키 삭제 방지 방법

Doctrine이 수동으로 생성 한 외래 키를 삭제하는 것을 방지 할 수있는 방법이 있습니까? 아니면 관계없이 주석을 사용하여 외래 키를 만들 수있는 방법이 있습니까?

+1

나는 그렇게 생각하지 않는다. doctrine을 사용하고 데이터베이스 스키마를 100 % 정의했거나 업데이트를 전혀 사용하지 않을 것 (데이터베이스를 수동으로 변경) 사이를 결정해야합니다. – Sgoettschkes

답변

2

마찬가지로 sgoettschkes과 마찬가지로 정확하게 물어 보는 것은 불가능하다고 생각합니다. (하지만 향후 버전에서 티켓을 쓸 수는 있습니다. 그런데도 찾지 못했고 좋은 생각 인 것 같습니다. !) :

나는 그렇게 생각하지 않는다. doctrine을 사용하고 데이터베이스 스키마를 100 % 정의했거나 업데이트를 전혀 사용하지 않을 것 (데이터베이스를 수동으로 변경) 사이를 결정해야합니다. 업데이트 물건 : 그때까지 그러나

  • sgoettschkes
    • 는, 내가 당신을 제안하는 네이티브 SQL과 스크립트를 작성하고 (후) 당신의 교리 스키마에서 실행하는 것입니다.

    0

    프로덕션 환경에서는 doctrine : schema : update를 사용하지 말아야합니다. 프로덕션 환경에서 실행하기 위해 Doctrine Migrations를 살펴보고 배포 후에 실행중인 쿼리를 정확히 알고 있어야합니다.

    색인을 수동으로 추가하거나 수동으로 이름을 바꿀 수 있습니다. 스키마 업데이트 기능은 여러 버전의 스키마간에 자주 변경할 수 있고 데이터베이스 내용이 훨씬 덜 가치있는 개발 중에 사용해야합니다. 개발중인 인덱스를 테스트하고 싶다면 수동으로 인덱스를 다시 생성 할 수 있지만 이러한 경우는 자주 발생하지 않을 것이라고 생각합니다.

    관계를 정의하지 않으려는 이유가 무엇인지 모르겠다. 관계를 정의하지 않으려는 이유는이 인덱스와 쿼리에서 사용하지 못하게 할 수있는 다른 기능을 만드는 것이기 때문입니다.