[Flutter] sqflite database file 찾기

Elen li·2021년 5월 16일
0

sqflite 라이브러리를 사용하여 database를 CRUD 한 후,
터미널로 .db 파일을 읽어서 정말 파일에 저장이 되었는지 확인하는 방법입니다.

참조 링크: https://developer.android.com/studio/command-line/adb?hl=ko

database 경로 확인

openDatabase 메소드로 DB를 오픈할 때 사용한 주소를 로그에 찍습니다.
provider_path 를 사용해서 저장할 주소를 정한 경우 아래와 같은 주소가 찍히는 것을 볼 수 있습니다.

/data/user/0/com.example.sqflite_test_flutter/app_flutter

이 포스트에서는 위의 주소를 가지고 터미널을 통해 저장된 데이터를 select 해서 원하는대로 저장이 되었는지를 확인하는 방법을 알아봅니다.

adb로 연결된 디바이스 리스트 검색

터미널에 들어간 후 아래의 command를 입력합니다.

$ adb devices

결과화면에 2개의 기기가 연결되어있는 것을 확인할 수 있는데,
첫번째 'R3~'은 실제 연결된 물리적인 디바이스이고,
두번째 'emulator-5554'는 에뮬레이터의 리스트입니다.

저는 에뮬레이터의 데이터베이스를 확인하도록 하겠습니다.
실제 디바이스 연결 내용은 여기를 눌러서 확인하면 좋을 듯 합니다.

1. sdk 주소로 이동

$ cd /Users/jisulee/Library/Android/sdk

터미널에서 android의 sdk가 있는 곳으로 이동합니다.
sdk 위치를 모르는 경우,
안드로이드 스튜디오에서 'preferences - Appearance & Behavior - System Settings - Android SDK - Android SDK Location'을 참고하시면 됩니다.

2. platform-tools 이동

$cd platform-tools

3. adb로 device에 접근

adb devices로 찾았던 디바이스의 이름을 넣어 이동합니다.

$ adb -s emulator-5554 shell

4. $ run-as 패키지명 입력

$ run-as com.example.sqflite_test/app_flutter

5. $ sqlite3 'database 이름' 입력

$ sqlite3 doggie_database.db

6. $ .tables 입력

$ .tables

7. 쿼리문 입력

select * from dogs

맨 아래 줄에 '0|Fido|42'가 들어있는 것을 확인할 수 있습니다.

profile
Android, Flutter 앱 개발자입니다.

0개의 댓글