저는 건물에있는 Catalyst 앱에서 DBIx::Class을 사용하고 있습니다. 그것은 훌륭하게 작동하지만 때로는 필자가 개발 한 자신 만의 db 함수를 사용해야합니다. 이 때문에 dbh가 필요합니다. 그러나, 이미 사용하고 있기 때문에 DBIx::Class
나는 그것이 이미 사용하고 dbh를 가지고 알아. 데이터베이스에 대한 또 다른 불필요한 연결을 피하기 위해, 나는 DBIx::Class
이 이미 만든 dbh를 사용하고 싶습니다. DBIx::Class::Storage::DBI 모듈에는 dbh
과 dbh_do
의 두 가지 방법이 있지만 두 모듈간에 차이점이 있는지, 그리고 dbh에 액세스하는 가장 좋은 방법인지는 잘 모르겠습니다. 누구든지 DBIx::Class
에서 dbh를 가져 오는 가장 좋은 방법은 Catalyst
앱에 무엇이 있는지 말해 줄 수 있습니까? 나는 다음과 같은 숨김에 dbh를 저장하는 방법을 선호합니다.DBIx :: Class dbh 가져 오기
sub dbh :Private {
my ($self, $c) = @_;
$c->stash->{dbh} = #get dbh from DBIx::Class here
}
감사합니다!
대신 'dbh_do'를 사용해야하는 이유가 있습니까? dbh에 대한 문서에서 다음과 같이 말하기 때문에 : "대신에"dbh_do "를 사용해보십시오." – srchulo
직접 사용하지는 않았지만 dbh_do에 대한 문서에서는 새로운 예외 시스템을 사용한다고합니다. (나는'$ dbh-> do'를 래핑하고 제공된 함수를 실행하는 것으로 추측한다.) 그래서 나는 그것이 이유라고 생각한다. 내가 원시'$ dbh '를 사용하는 데 전혀 문제가 없었습니다. – friedo
@srchulo 네,'dbh_do'에서 실행되는 모든 것은 DBIx :: Class 연결 관리 (DB 연결이 끊어지면 재 연결)의 영향을받습니다. 아주 멋진 트랜잭션 관리를위한'txn_do'도 있습니다. – hobbs