하얀설표 블로그




dart drift 패키지 사용을 위한 사전 준비 작업




( 수정됨)


dependencies 추가

drift installing에는 drift만 추가하면 된다고 하지만, sqlite3_flutter_libs를 같이 추가해줘야 한다.
해당 패키지는 sqlite3를 flutter에서 사용할 수 있도록 해주는 패키지라고 하는데, 직접 사용하진 않지만 이게 없다면 flutter에서 sqlite를 사용할 때 에러가 발생한다.

dependencies:
  ...
  sqlite3_flutter_libs: ^0.5.18
  drift: ^2.14.0

dev_dependencies:
  ...
  drift_dev: ^2.14.0
  build_runner: ^2.4.7

drift dev: https://pub.dev/packages/drift/install

sqlite3_flutter_libs dev: https://pub.dev/packages/sqlite3_flutter_libs/install

drift_dev dev: https://pub.dev/packages/drift_dev/install

build_runner dev: https://pub.dev/packages/build_runner/install

sqlite.dll 다운로드

윈도우만 필요한 것인지는 잘 모르겠는데, sqlite.dll이 없으면 sqlite 파일을 조작할 수 없다.
마찬가지로 이러한 내용 역시 drift installing에는 명시되어있지 않아 사람을 해매게 만드는 악질적인 요소다.
sqlite 관련 flutter 패키지를 모조리 뒤져보다가 어떤 패키지에서 이 내용을 접한 덕분에 쓸데없는 시간낭비를 그만둘 수 있었다.

.dll 파일 하나만 flutter 프로젝트 최상단 폴더에 넣어주면 된다.
(lib/linux/ios/macos 폴더가 존재하는 경로)

sqlite.org 바로가기 : https://www.sqlite.org/download.html

model 작성 후 build

굳이 순서를 따지자면 사용 전 준비사항은 아니고, 준비 중에 해야 하는 작업이긴한데, 일단 여기에 적어둔다.
database에 사용할 테이블과 테이블에서 사용하는 각 Column들의 명칭과 속성을 정한 다음, 다음 명령어를 실행해줘야 한다.

flutter pub run build_runner build

dart/flutter 프로젝트에서 sqlite를 사용할 때, 어떤 값을 어떻게 조작할지 정해놓은 가이드라인이다.
이 명령을 통해 "{DbHandleName}.g.dart" 파일이 자동으로 작성되며, 이 파일을 생성하기 위해서는 DbHandle class가 들어있는 .dart 파일 상단에 "part {DbHnaleFileName}.g.dart"라는 코드를 작성해두어야 한다.

이런 내용도 안 써놓은 사람들 많더라.
그 덕분에 코드는 멀쩡하게 완성했는데 왜 안되나 쓸데없는 고민만 잔뜩 했다.

참고로 프로젝트 폴더에 한정해서 이루어지는 작업이기 때문에 실행 경로가 프로젝트가 아니거나, flutter 명령이 환경설정에 기본으로 되어있지 않다면 정상적으로 작동하지 않는다.
이 경우 윈도우 기준 cmd를 실행한 다음, 다음과 같은 순서로 명령을 해주어야 한다.

$ cd {path/to/flutter/project/directoty}
{path/to/flutter/project/directoty}$ {path/to/flutter}/bin/flutter pub run build_runner build

당연한 말이지만 "{path/to/flutter/project/directoty}"은 플러터 프로젝트의 lib 폴더가 존재하는 경로(sqlite.dll을 집어넣은 바로 그 경로)이고, "{path/to/flutter/project/directoty}"는 플러터 파일이 존재하는 폴더를 의미한다.


공감 : 0







white.seolpyo.com