본문 바로가기
파이썬

파이썬 OperationalError : 데이터베이스가 잠겨 있습니다.

by º기록 2020. 11. 21.
반응형

응용 프로그램에서 몇 가지 반복 작업을 수행 (테스트)했는데 갑자기 이상한 오류가 발생합니다.

OperationalError: database is locked

서버를 다시 시작했지만 오류가 계속 발생합니다. 그것은 무엇에 관한 것일 수 있습니까?

 

해결 방법

 

장고 문서에서 :

SQLite는 경량을 의미합니다. database, and thus can't support a high level of concurrency. OperationalError: database is locked errors indicate that your application is experiencing more concurrency than sqlite can handle in default configuration. This error means that one thread or process has an exclusive lock on the database connection and another thread timed out waiting for 잠금이 해제됩니다.

Python SQLite 래퍼에는 기본값이 있습니다. timeout value that determines how long the second thread is allowed to wait on the lock before it times out and raises the OperationalError: database 잠금 오류입니다.

이 오류가 발생하면 다음을 수행 할 수 있습니다. 해결 방법 :

  • 다른 데이터베이스 백엔드로 전환합니다. 특정 시점에서 SQLite는 실제 응용 프로그램에 비해 너무 "가벼워지고"이러한 종류의 동시성 오류는 해당 지점에 도달했음을 나타냅니다.
  • 코드를 다시 작성하여 동시성을 줄이고 데이터베이스 트랜잭션의 수명이 짧도록합니다.
  • 데이터베이스 시간 초과 옵션을 설정하여 기본 시간 초과 값 늘리기


 

참조 페이지 https://stackoverflow.com/questions/3172929

 

 

반응형

댓글