Connections
Connections are managed in the left panel. Each profile is stored locally; its password is kept in the OS keychain and never written to disk in cleartext.
Creating a connection
Click ➕ and complete the dialog:
- Name — a friendly label shown in the navigator and status bar.
- Engine — ElyraSQL Server (the default), MySQL, MariaDB,
ClickHouse, or a local SQLite file.
For SQLite, just point at a
.sqlite/.dbfile (see below); the other server fields are hidden. - Host / Port — defaults to
127.0.0.1:3307. - User / Password — the password is saved to the keychain on connect.
- Default database — optional database to select on connect.
- Environment —
Dev,StagingorProd. Sets the accent colour and, for production, extra safety rails. - Read-only — the connection refuses any write or DDL statement.
- Require TLS — enforce an encrypted connection (otherwise TLS is used opportunistically when the server offers it).
Test verifies connectivity and reports clear diagnostics (authentication, network, unknown database, TLS). Connect opens and saves the profile.
Environments & safety rails
The active environment is shown in the toolbar and status bar:
- Prod draws a red frame around the window.
- On production connections, write/DDL statements require an explicit confirmation before running. The confirmation counts what the statement would touch first — Deletes 1,204 rows from orders — and shows a few of those rows. See What a write will touch.
- Read-only connections block writes entirely, regardless of edition.
The client never widens server permissions
These rails only ever narrow what you can do. The server's own privileges always apply on top.
What a write will touch
Before the production confirmation opens, the client counts the rows each write in the editor would affect, without running it:
| Statement | What is shown |
|---|---|
UPDATE t … WHERE … |
Updates N rows in t, and the first five of them |
DELETE FROM t WHERE … |
Deletes N rows from t, and the first five |
UPDATE / DELETE with no WHERE |
The same, in red: every row in the table |
TRUNCATE t, DROP TABLE t |
How many rows go with it |
The count is a SELECT COUNT(*) built from the statement's own table and
WHERE, and a literal LIMIT caps it. It is a snapshot: rows can change
between counting and running, and the dialog says so. It stops after five
seconds (or the connection's own timeout, if shorter) rather than hold the
dialog up — a count that slow is itself a warning about the write.
Some statements are not given a number, and the dialog says why rather than
guess: a multi-table UPDATE … JOIN or DELETE a FROM a JOIN b, where
counting the join would not give the number of rows changed, and anything
other than the four kinds above.
ClickHouse
Choose Engine → ClickHouse. The port fills in as 8123, or 8443 when
you tick Require TLS — ClickHouse Cloud only exposes the second, so the two
move together. The default user is default.
The connection goes over ClickHouse's HTTP interface, not its MySQL-compatibility port. That is deliberate: the MySQL shim reports every column as a string, is absent on ClickHouse Cloud, and gives no way to cancel a running query. Over HTTP you get real ClickHouse types in the grid, a working Stop, and the connection's Statement timeout enforced by the server rather than by the client.
What works
Browsing databases, tables and views; running any SQL you write, including DDL
and INSERT; the data grid; export; charts; column profiles; the AI assistant,
which knows the ClickHouse dialect.
What is turned off, and why
ClickHouse is columnar and has neither row-addressable updates nor transactions.
ALTER TABLE … UPDATE/DELETE is an asynchronous rewrite of data parts: it
returns before the change is visible, matches rows by a predicate rather than a
key, and cannot be rolled back. That is not what the buttons below mean, so
rather than generate SQL that does something else, they are unavailable on a
ClickHouse connection:
- Editing rows in the data grid
- The table designer
- Structure and data synchronisation
- Data generation
Anything you write yourself still runs. What is refused is the client generating mutation SQL on your behalf under a name that promises different semantics.
ClickHouse also has no foreign keys, so the ER diagram and FK navigation have nothing to show.
SQLite files
Choose Engine → SQLite file and enter the full path to a local database file. SQLite connections:
- Browse, query, sort, filter, edit and export just like a server connection.
- Are always local, so they work on the Free edition (editing still needs Pro, like any connection).
- Don't expose ElyraSQL-only tools (server status, process list, user administration, backup) — those return a clear "ElyraSQL only" message.
Local vs remote
- Local/loopback hosts (
127.0.0.1,localhost, …) are available on the Free edition. - Remote hosts require Pro or Premium — see Editions.
Managing connections
- Select a connection to connect and load its databases.
- Hover a connection and click ✕ to remove it (also deletes its keychain secret).
- Switch quickly with the command palette (⌘/Ctrl + K → “Switch to …”).
Right-click a connection
Right-clicking a connection opens a context menu: open/close, edit, duplicate, delete, new query, new database, a colour tag (shown on the connection's dot), and refresh.
Right-clicking the database row gives database actions: new query, find, refresh, copy name, dump schema, new/drop database, and backup.