sqflite 라이브러리를 사용하여 database를 CRUD 한 후,
터미널로 .db 파일을 읽어서 정말 파일에 저장이 되었는지 확인하는 방법입니다.
참조 링크: https://developer.android.com/studio/command-line/adb?hl=ko
openDatabase 메소드로 DB를 오픈할 때 사용한 주소를 로그에 찍습니다.
provider_path 를 사용해서 저장할 주소를 정한 경우 아래와 같은 주소가 찍히는 것을 볼 수 있습니다.
/data/user/0/com.example.sqflite_test_flutter/app_flutter
이 포스트에서는 위의 주소를 가지고 터미널을 통해 저장된 데이터를 select 해서 원하는대로 저장이 되었는지를 확인하는 방법을 알아봅니다.
터미널에 들어간 후 아래의 command를 입력합니다.
$ adb devices
결과화면에 2개의 기기가 연결되어있는 것을 확인할 수 있는데,
첫번째 'R3~'은 실제 연결된 물리적인 디바이스이고,
두번째 'emulator-5554'는 에뮬레이터의 리스트입니다.
저는 에뮬레이터의 데이터베이스를 확인하도록 하겠습니다.
실제 디바이스 연결 내용은 여기를 눌러서 확인하면 좋을 듯 합니다.
$ cd /Users/jisulee/Library/Android/sdk
터미널에서 android의 sdk가 있는 곳으로 이동합니다.
sdk 위치를 모르는 경우,
안드로이드 스튜디오에서 'preferences - Appearance & Behavior - System Settings - Android SDK - Android SDK Location'을 참고하시면 됩니다.
$cd platform-tools
adb devices로 찾았던 디바이스의 이름을 넣어 이동합니다.
$ adb -s emulator-5554 shell
$ run-as com.example.sqflite_test/app_flutter
$ sqlite3 doggie_database.db
$ .tables
select * from dogs
맨 아래 줄에 '0|Fido|42'가 들어있는 것을 확인할 수 있습니다.