2012-12-02 3 views

답변

2

initModeDropAllCreate으로 설정하고 각 인스턴스에 대해 새 인스턴스를 만들고 close() 메서드를 사용하여 모든 인스턴스의 리소스를 확보 할 수 있습니다.

다음과 같은 사용자 정의 함수가 당신에게 도움이 될 수 있습니다

def withDb (f : Instance =>()) { 
    val db = new Instance (..., initMode = InitMode.DropAllCreate) 
    f(db) 
    db.close() 
} 

를 사용하여 항상 새로 생성 된 인스턴스의 맥락에서 작동하기 쉬운 수 있습니다 :

withDb { db => 
    db.save(...) 
    db.query[...](...) 
} 
+1

다시 연결을 설정하지 않고 테이블을 삭제하고 다시로드하는 확실한 방법이 있으면 멋지게 될 것입니다 ... – Eduardo

2

내 해결책은 다시 연결하지 않고 테이블을 삭제하고 다시 만들 수있는 재로드 방법을 정의하는 것이 었습니다. 내 인스턴스 정의 :

class DatabaseTest extends Instance(...) { 
    def reload = { 
    connector.withConnection { connection => 
     connection.dropAllTables() 
     Create.tables(mappings.values).foreach { 
     t => connection.createTable(t) 
     } 
    } 
    } 
} 
+0

좋은 아이디어. 그러나 아직 API에서 그러한 저수준 기능을 포함시키는 데 급급하지 않을 것입니다. 상당한 피드백이 올 때까지 적어도. –

+0

우리는 "테스트 키트"API에 대해 생각할 수 있으며 이것이 가능할 것입니다. 빠른 피드백에 감사드립니다. – Eduardo

+1

하나의 기능으로는 키트가 충분하지 않으며 아직 다른 기능에 대한 요구 사항이 많지 않습니다. 다시, 우리는 더 많은 피드백이 필요합니다. –

관련 문제