다음과 같은 오류가 발생할 수 있습니까?YesCode + sqlite3에서 ErrorConstraint SqliteException 오류가 발생할 수 있습니까?
uncaught exception: SqliteException (SQLite3 returned ErrorConstraint while attempting to perform step.)
이상한 점은 대부분의 사양이 withApp
을 사용하는이 오류로 실패한다는 것입니다.
경우, 그러나, 나는
system "rm project-name_test.sqlite3*"
가 갑자기 모든 사양을 다시 통과 할
TestImport.hs
에
wipeDB
을 수정합니다. 테스트 실행에는 약 4-5 배의 시간이 걸리지 만 이상적인 것은 아닙니다.
wipeDB
로직 (stack new
에 의해 생성됨)이 충분하지 않을 수 있습니까?
models
파일에서 고유성 제약 조건을 지정했는지 알기 위해 파일을 살펴 보았지만 아무 것도 보이지 않습니다. 그들은 제약이있는 경우
User
emailAddress Text
password ByteString
verified Bool
verifyKey Text
resetPasswordKey Text
deriving Show
Foo
userA UserId
userB UserId
deriving Show
, 그들은이 파일에있을 것입니다하지 않을 :
나는 제외하고 models
에서 모든 댓글을 달았습니다? 또는 제약 조건을 선언하는 다른 장소가있을 수 있습니까? 어쨌든 예외가 참조 할 수있는 제약 조건은 무엇입니까?
필자가 원하는만큼 줄이지는 않았지만,이 모든 내용은 runDB $ insert $ Foo
으로 거슬러 올라갈 수 있습니다. 제거하면 해당 예외는 사라졌고 훨씬 더 많은 사양이 통과되었습니다 , 삽입이 일어날 것으로 예상하기 때문에 몇 가지 실패 만 있습니다. 그리고 그들은 ErrorConstraint 예외가 아니라 어설 션 실패로도 실패합니다.
이 오류에 대해 가능한 여러 가지 이유가있는 경우 예외보다 더 모호하다는 것을 알고 싶습니다.
:
그래서이 지금 내 wipeDB 기능입니다 https://github.com/yesodweb/persistent/issues/675 – Wizek