2012-08-08 1 views
4

Database.Persist는 인덱스에 무관심한 것으로 보입니다. 이것은 괜찮습니다. 고유 한 인덱스를 만들 수 있지만 일반 SQL 마이그레이션은 필드를 추가/제거 할 때 테이블을 만들고 삭제하는 것 같습니다. 이것은 색인을 삭제하는 효과도 있습니다.Database.Persist (Yesod 웹 프레임 워크)로 SQL 인덱스

데이터베이스 마이 그 레이션을 견딜 수있는 좋은 방법이 있습니까?

답변

7

SQLite3 백엔드 만 테이블을 삭제해야하므로 PostgreSQL과 MySQL은 모두 강력한 ALTER TABLE 명령을 사용하여이를 방지합니다. 그래서 색인은 SQLite3에서만 잃어 버려야합니다. 프로덕션 환경에서 SQLite3을 사용하는 경우 다음 두 가지 중에서 선택할 수 있습니다.

  1. 자동 마이그레이션을 사용하지 않도록 설정하고 직접 스키마를 처리하십시오.
  2. 누락 된 색인을 대체하기 위해 마이그레이션을 실행 한 후 일부 코드를 추가하십시오.
+0

답장을 보내 주셔서 감사합니다. PostgreSQL으로 전환 했으므로이 문제가 해결되었습니다. – Tero

관련 문제