Inspecting SQLite Databases in Appcelerator Titanium Projects
If you’re using SQLite for your project and you’d like to query the database directly. For Android based devices or emulators, you can do the following:
You’ll need to remember your database name, if you’re using commonJS, you can do something similar to:
exports.getDatabase = function() {
return Ti.Database.open('app.db');
};
Next, find out what devices you have connected using adb
:
adb devices
This will return a list similar to this:
List of devices attached
10.0.0.2:5555 device
Next, use the ADB shell command to boot into the device:
adb -s 10.0.0.2:5555 shell
This will drop you into a shell on the device. Next, find the database file. In the first code snippet here, you can see our database name is app.db
, so we’ll use a combination of find and grep to find the file on the device:
cd /; find * | grep app.db
And this will return the SQLite file and it’s journal, like this:
root@vbox86p:/ # cd /; find * | grep app.db
data/data/com.example.audit/databases/app.db
data/data/com.example.audit/databases/app.db-journal
Now you can use the CLI tool to open the database, like so:
sqlite3 data/data/com.example.audit/databases/app.db
And you’ll be dropped into the CLI tool. You can get a list of tables by using .tables
and exit the program via .quit
.
The reference for this post came from this wonderful blog post.