Quick setup
Click Create Connection…, select SQLite, pick the file with Browse…, and click Save & Connect. There is no host, port, or credential to fill in. The driver ships inside TablePro and reads the file through the SQLite that macOS supplies, so there is no server version to match..db, .db3, .s3db, .sl3, .sqlite, .sqlite3, and .sqlitedb files list TablePro under Finder’s Open With, as an alternate handler rather than the default one. To make a double-click open them here, select one in Finder, press Cmd+I, set Open with to TablePro, and click Change All….
A database saved under some other name still opens. Drag it onto a TablePro window, pick it in File > Open File…, or drop it on the Dock icon, and the first sixteen bytes decide the driver: a file that starts SQLite format 3 opens here whether it is called store.bin, export, or data.csv. Finder’s double-click is the one route that still needs a name it knows.


SQLite connection form
Common locations
Connection URL
Browsing
The sidebar lists tables and views and hides the internalsqlite_* tables. Each table carries its columns, constraints, indexes, foreign keys, and DDL; triggers can be read and edited.
Change the file outside TablePro and the object list reloads on its own. Rows already loaded in a tab stay until you refresh that tab.
One connection is one file, with no database to switch between, and the object list reads the main database only: a file you ATTACH in the editor is queryable as alias.table but never appears in the sidebar.
A database on another machine
The Remote File pane points the connection at a database on an SSH server. It is fetched over SFTP and opened read-only from a copy on this Mac, and the original is never written to. Where the server hassqlite3 3.27 or newer, the copy is a VACUUM INTO snapshot, which stays consistent even while other programs write to the database. See Remote Database Files.
Editing a table’s foreign keys
ALTER TABLE cannot add or drop a foreign key in any SQLite version, so the Structure tab’s Foreign Keys tab recreates the table instead: it writes the table again with the keys you asked for, copies the rows across with their rowids, puts the indexes and triggers back, and checks the rows against the new keys before committing. The script is shown in full and runs only when you confirm it. Column changes staged in the same save travel with it. See Table Structure.
A virtual table, such as an FTS5 table, cannot be recreated from what SQLite stored for it. The save is refused and names the table.
Limitations
- Encrypted databases do not open. The driver uses the system SQLite, which takes no key, and the form has nowhere to put one. Decrypt a SQLCipher file with the
sqlciphertool first. - A column’s type, nullability, and default cannot change. The save is refused and names the columns. Change them by running DDL yourself.
Troubleshooting
database is locked
Another process holds a write lock. Quit the app that owns the file, or look for-wal and -shm files a crashed process left behind. The wait runs until the query timeout; Query > Cancel Query ends it sooner.
unable to open database file
The path is wrong, or the folder is one you cannot read. For anything under~/Library, grant Full Disk Access and relaunch.
file is not a database
The file is encrypted or is not SQLite at all.file database.db names what it actually is.
