Table view
Browsed tables and the results of your SELECT queries are shown as a table.
▲ laraport › Production › shop-app-1 › orders ● ssh shop.example.com orders id number customer status total paid_at coupon 50119 SH-50119 ivan@example.com paid 64.00 2026-11-03 18:14:31 AUTUMN25 50118 SH-50118 mark@example.com paid 18.50 2026-11-03 18:14:11 NULL 50117 SH-50117 anna@example.com failed 212.00 NULL NULL 50116 SH-50116 olena@example.com paid 49.00 2026-11-03 18:11:02 NULL 50115 SH-50115 tomas@example.com refunded 75.90 2026-11-03 17:58:40 AUTUMN25 50114 SH-50114 li.wei@example.com paid 120.00 2026-11-03 17:51:13 NULL 50113 SH-50113 sara@example.com paid 120.00 2026-11-03 17:49:58 NULL 50112 SH-50112 olena@example.com paid 49.00 2026-11-03 17:44:40 NULL 50111 SH-50111 jonas@example.com pending 33.00 NULL NULL 50110 SH-50110 maria@example.com paid 89.90 2026-11-03 17:30:21 WELCOME rows 1–10 · more: n · row 1 · col 1/7 id · via app · pgsql:5432 LARAPORT Production shop-app-1 ←↑↓→ move enter record y copy x/X export csv/json n/p page? help
Moving around
Section titled “Moving around”| Key | Action |
|---|---|
arrows or h j k l |
Move the cell cursor |
0 / $ |
First / last column |
g / G |
First / last row |
enter |
The whole row as column and value pairs |
y |
Copy the cell |
n / p |
Next / previous page of 100 rows |
s |
Sort by the current column: ascending, descending, none |
/ |
Set a WHERE filter |
i |
The table’s structure: columns, types, defaults, keys and foreign keys |
x / X |
Export the loaded rows as CSV / JSON |
r |
Reload |
Sorting and filtering run in the database. Wide results scroll sideways. y copies through the terminal; if nothing is copied, see Troubleshooting.
Values
Section titled “Values”- Numbers are right-aligned, and
NULLlooks different from an empty string. - Newlines show as
↵. - Emoji and other characters whose width differs between terminals show as
◇, so the columns stay aligned. - Values are read in a structured format (
psql --csv,mysql --xml,sqlite3 -csv), so commas, quotes, newlines and Unicode come through intact.
Queries
Section titled “Queries”A single SELECT, WITH or VALUES statement is wrapped in a LIMIT, so a huge result is never transferred: the first 500 rows are shown. Other statements show their text output.
Editing
Section titled “Editing”Tables with a primary key can be edited.
| Key | Action |
|---|---|
e |
Edit the cell. Multi-line values work; ctrl+n sets NULL, ctrl+s saves |
a |
Add a row: a form with every column, its type and default |
D |
Delete the row |
- Every change shows its SQL, for example
UPDATE "users" SET "name" = 'Bob' WHERE "id" = '2', and runs only after you confirm. Cancel is focused. - Rows are addressed by their whole primary key. “0 rows” means the row was gone or its key had changed.
- No value can break the statement, whatever it contains: the statement that runs uses PostgreSQL dollar quoting with a random tag, a MySQL hex literal or an escaped SQLite string.
- Tables without a primary key, query results and views are read-only.
When the app runs with APP_ENV=production, the table view says PRODUCTION, and editing has to be switched on once per table, after a warning.