Schema, compare and sync
Paid features on this page: Compare & Sync (Starter). Everything else here is free.
Change structure, read the DDL first
The Structure tab edits a table’s columns, indexes, foreign keys and CHECK constraints in a grid. Changes wait until you save, and Preview SQL (⌘⇧P) shows the ALTER TABLE statements before anything runs. A change that removes something, changes a type, adds NOT NULL or changes the primary key asks first, even on a connection whose Safe Mode level is Silent.
Indexes can use expression keys such as lower(email). New Table builds a table the same way, with a live SQL preview. On SQLite, libSQL, Turso and Cloudflare D1, which cannot alter a foreign key in place, TablePro writes a table rebuild for you to review. It runs it on SQLite and a local libSQL file once you confirm, and leaves it to you on Turso, remote libSQL and D1.
- Structure is read-only
- Redis, Amazon Redshift, CockroachDB, Google BigQuery, Elasticsearch, etcd, Apache Kafka, SurrealDB, Beancount, Google Cloud Spanner, Typesense, Weaviate, Cloudflare R2 SQL, SAP HANA
- Some structure changes only
- MongoDB, TiDB, Databend, Oracle, ClickHouse, Cassandra, ScyllaDB, Amazon DynamoDB, Snowflake, Cloudflare D1, Turso, libSQL, Teradata, Trino


See how the tables relate
View ER Diagram draws the current schema’s tables and foreign keys, with crow’s-foot cardinality worked out from primary and unique keys. Junction tables such as product_tags fold into one many-to-many line. Export the diagram as a PNG, copy it as an image, or export it as SQL: the CREATE TABLE statements with their foreign keys.
The diagram is a snapshot to read and share. Tables are changed in the Structure tab, not on the canvas.


Routines, triggers and folders in the sidebar
Under each schema the sidebar lists procedures, functions and triggers where the engine has them, and opens their source in a read-only tab you can copy from or open in the editor. Redshift, CockroachDB, PGlite and SAP HANA list none. PostgreSQL partitions sit under their parent table.
Folders for tables and views
Group tables and views into folders by dragging them or with Move to, in the list or the tree layout of the sidebar. The filter field looks inside folders. A folder exists only in TablePro and changes nothing on the server; with iCloud Sync on, folders follow you to your other Macs.
Compare & Sync
Compare & Sync: Starter plan
Pick a source and a target, which can be two servers or two databases on one server, and Compare & Sync lists every table that differs, with views, routines and triggers if you include them. In data mode it matches rows by key and marks each value that differs, with a filter and a row limit per table, so you can compare one stretch of a large table.
The script it generates is ordered by foreign keys and written for the target’s own client. Statements that destroy data, such as dropping a column, narrowing a type or deleting rows, are held back until you allow them for that run, and a connection set to Read-Only cannot be picked as the target. Save a comparison to run it again in one click.


Copy To, Duplicate Database and Transfer To
Copy To sends tables, views, routines and triggers, as structure, data or both, to another database on any saved connection, including one running a different engine. Before anything is written, a review lists the DDL, the rows each table expects and every column type that changes on the way, such as an ENUM column from MariaDB arriving in PostgreSQL as VARCHAR without its list of allowed values. A WHERE clause and a row limit per table copy part of a table.
Duplicate Database copies a whole database under a new name on the same connection. Transfer To moves rows straight into an existing table on another open connection, with a column mapping and no file in between. All three are free.


Users, sessions and maintenance
Table maintenance, such as VACUUM and REINDEX on PostgreSQL or OPTIMIZE and CHECK on MySQL, shows its SQL before it runs. Databases and schemas can be created, dropped and renamed from the sidebar where the engine supports it.
Users & Roles
Users & Roles shows each user’s privileges as a tree from the server down to a single column. Grants and revokes wait as staged changes and show their SQL before they run, so you never write a GRANT by hand.
- Users & Roles
- PostgreSQL, MySQL, MariaDB, PGlite


Server Dashboard
The Server Dashboard shows live sessions, server metrics and slow queries, refreshed at the interval you pick. Where the engine allows it, cancel a running query or terminate a session from its row; both go through the connection’s Safe Mode. On SQLite, DuckDB and Typesense it shows metrics only.
- Server Dashboard
- PostgreSQL, MySQL, SQL Server, SQLite, MariaDB, Amazon Redshift, CockroachDB, ClickHouse, DuckDB, Typesense


On iPhone and iPad
The iPhone and iPad app shows a table’s columns, indexes and foreign keys, read-only. From the table list you can truncate or drop a table on a SQL engine, unless the connection is Read-Only.
Structure editing, the ER diagram, Compare & Sync, Copy To, Users & Roles and the Server Dashboard are in the Mac app only.
Where it works
| Capability |
|---|
| Structure editing with a DDL previewMac: FreeiPhone and iPad: Columns, indexes and foreign keys, read-only |
| New TableMac: FreeiPhone and iPad: Not available |
| Truncate and drop tablesMac: FreeiPhone and iPad: Free |
| ER diagramMac: FreeiPhone and iPad: Not available |
| Routines, triggers and table foldersMac: FreeiPhone and iPad: Not available |
| Compare & SyncMac: Starter planiPhone and iPad: Not available |
| Copy To, Duplicate Database and Transfer ToMac: FreeiPhone and iPad: Not available |
| Users & RolesMac: FreeiPhone and iPad: Not available |
| Server Dashboard and table maintenanceMac: FreeiPhone and iPad: Not available |
Limits worth knowing
- Compare & Sync writes a structure script only between two databases of the same engine, with MySQL and MariaDB counted as one. Other pairs compare read-only, MongoDB structures never get a script, and a data sync across engines warns you to check how values are written. To move tables to another engine, use Copy To.
- Reordering columns rebuilds the table on SQLite and on a local libSQL file, after you confirm. On PostgreSQL, Turso, remote libSQL and Cloudflare D1, TablePro writes the rebuild script and leaves running it to you.
- The ER diagram is read-only. It is not a schema designer.
- The sessions and query text the Server Dashboard can show depend on the privileges of the account you connect with.
Get TablePro
macOS 13 Ventura or laterApple silicon or Intel