해결)It looks like you've created the database class Handle multiple times.

작성자: [관리자] 하얀설표

2023.12.07 14:49 (KST) 작성됨






코드 예시

import 'package:example/Drift/insert.dart';

void a(){
  var db = Handle();
  db.close();
}
void main() async {
  a();
  a();
}

 

에러 메세지

WARNING (drift): It looks like you've created the database class Handle multiple times. When these two databases use the same QueryExecutor, race conditions will occur and might corrupt the database.
Try to follow the advice at https://drift.simonbinder.eu/faq/#using-the-database or, if you know what you're doing, set driftRuntimeOptions.dontWarnAboutMultipleDatabases = true
Here is the stacktrace from when the database was opened a second time:
#0      GeneratedDatabase._handleInstantiated (package:drift/src/runtime/api/db_base.dart:96:30)
#1      GeneratedDatabase._whenConstructed (package:drift/src/runtime/api/db_base.dart:73:12)
#2      new GeneratedDatabase (package:drift/src/runtime/api/db_base.dart:64:5)
#3      new _$Handle (package:example/Drift/insert.g.dart:332:31)
#4      new Handle (package:example/Drift/insert.dart:66:14)
#5      a (package:example/Drift/main.dart:5:12)
#6      main (package:example/Drift/main.dart:10:3)
#7      _delayEntrypointInvocation.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:296:19)
#8      _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:189:12) This warning will only appear on debug builds. Process finished with exit code 0

 

해결방법

database handle class를 코드에서 2번 이상 호출하지 않는다.

 

설명

이 문제는 에러는 아니고, 일종의 경고문이다.
대충 database를 조작하는 class를 2번 이상 호출하면 문제가 생길 수 있으니 이렇게 사용하지 말라고 알려주는 것이다.

경고 메세지를 보지 않으려면 다음과 같은 방식으로 고쳐쓰면 된다.
database를 조작하는 class를 1번만 호출하기 때문에 경고 메세지를 노출하지 않는다.

import 'package:example/Drift/insert.dart';

void a(Database db){
  do_somthing;
}
void main() async {
  var db = await Handle();
  a(db);
  a(db);
}

 

drift 사용 방법

패키지 사용방법은 다음 페이지들을 확인하자

drift upsert 사용 예제

 

drift insert, update 사용 예제

 






추천 (0)


글 목록

댓글을 달 수 없는 게시물입니다.


"분류없음" 카테고리의 #에러해결, #flutter, #dart 관련 게시물

분류없음
해결) django.db.utils.OperationalError: database is locked
수정 06.18 | [관리자] 하얀설표
👍 0
#Python, #에러해결, #Django
🗨️ 0
분류없음
해결) An invalid form control with name='content' is not focusable.
작성 02.04 | [관리자] 하얀설표
👍 0
#에러해결
🗨️ 0
썸네일
분류없음
해결) mplfinance 한글 깨짐 문제(폰트 미지원 문제)
수정 2024.11.24 | [관리자] 하얀설표
👍 0
#Python, #에러해결
🗨️ 0
분류없음
해결)ImportError: attempted relative import with no known parent package
수정 2024.11.17 | [관리자] 하얀설표
👍 0
#Python, #에러해결
🗨️ 0
분류없음
해결)OSError: Chromium downloadable not found at {url} No such object
수정 2024.05.15 | [관리자] 하얀설표
👍 0
#Python, #에러해결
🗨️ 0
분류없음
해결)ModuleNotFoundError: No module named '_sqlite3'
작성 2024.04.23 | [관리자] 하얀설표
👍 0
#Python, #에러해결
🗨️ 0
분류없음
해결)json.decoder.JSONDecodeError: Invalid \escape: line * column * (char *)
수정 2024.04.22 | [관리자] 하얀설표
👍 0
#Python, #에러해결
🗨️ 0
썸네일
분류없음
해결)네이버 공유하기 알 수 없는 오류가 발생하여 공유하기가 진행되지 못했습니다
수정 2024.04.19 | [관리자] 하얀설표
👍 0
#에러해결
🗨️ 0
분류없음
해결)WARNING: Requirement 'JPype1‑1.4.0‑cp310‑cp310‑win_amd64.whl' looks like a filename, but the file does not exist
작성 2023.12.13 | [관리자] 하얀설표
👍 0
#Python, #에러해결
🗨️ 0
분류없음
해결)jpype._jvmfinder.JVMNotFoundException: No JVM shared library file (jvm.dll) found.
작성 2023.12.13 | [관리자] 하얀설표
👍 0
#Python, #에러해결
🗨️ 0