DbSchema lets you design, manage, and document TarantoolDB databases. Create ER diagrams, define tables and columns, and generate SQL scripts - with or without a live database connection.
Use Git to share the design, compare it with the TarantoolDB database, and deploy changes. DbSchema also includes a data editor, query builder, and HTML5 documentation - everything you need in one tool.
Download DbSchema Download TarantoolDB JDBC Driver
Tarantool is an in-memory computing platform that combines a high-speed NoSQL data engine with an embedded application server powered by Lua fibers. Data is organized into spaces — analogous to tables — each with one or more indexes that determine access patterns. Spaces can persist to disk via the write-ahead log (WAL) and snapshots while remaining fully in-memory for read/write access, delivering sub-millisecond latency. Tarantool also exposes a SQL interface layered on top of its native NoSQL spaces, making the data accessible via standard JDBC tooling.
DbSchema connects to Tarantool through the Tarantool JDBC driver and reverse-engineers the SQL-facing schema — spaces that have been defined with SQL-compatible column metadata appear as entities in the visual diagram. Index types (TREE, HASH, RTREE, BITSET) are captured as part of the schema model, and the relationships implied by foreign key equivalents in the application logic can be drawn manually on the diagram canvas to document the intended data model.
Tarantool's SQL interface supports a subset of ANSI SQL that covers SELECT, INSERT,
UPDATE, DELETE, CREATE TABLE, and basic joins. DbSchema's SQL editor
sends queries via the JDBC layer and displays results in the tabular results grid. This is a convenient way to
explore space contents, run ad hoc aggregations, or prototype queries that will later be wrapped in Lua stored
procedures for production use.
Because Tarantool's SQL layer sits on top of its NoSQL engine, some operations — such as full-table scans on
spaces without a suitable index — are more expensive than in a traditional RDBMS. The SQL editor's
EXPLAIN support helps you identify when a query is performing a sequential scan so you can add the
appropriate index before deploying to production. You can also call Tarantool's built-in stored procedures using
the CALL statement through the JDBC interface.
The DbSchema data explorer presents Tarantool space records as rows in a paginated grid, making it easy to inspect individual tuples without writing a Lua box.select call or a raw SQL query. You can filter the view by any indexed column and navigate between pages of results to spot-check data quality after an import or a bulk update operation.
The explorer is particularly useful when Tarantool is deployed as a high-speed session store or cache, and you need to quickly verify that session records are being written with the correct TTL or flag values. Because Tarantool supports composite primary keys and multi-part indexes, the data explorer shows all key parts together, giving you the full context needed to understand each record's identity within the space.
To connect DbSchema to Tarantool, select TarantoolDB from the database list and provide the Tarantool JDBC
driver (tarantool-jdbc-*.jar) if it is not already bundled. The JDBC URL format is:
jdbc:tarantool://localhost:3301. The default Tarantool port for the binary protocol (and the SQL
listener) is 3301.
Tarantool must have the SQL listener enabled — this is done by calling box.cfg{listen = 3301} in
the Tarantool configuration file and ensuring the SQL module is available. Authentication uses Tarantool's
native user credentials defined via box.schema.user.create. For production deployments that use
VShard for horizontal sharding, connect to the router instance rather than individual storage nodes so that the
SQL layer has visibility across all shards.