Free PostgreSQL Tools
These Postgres online tools run inside your browser tab and do one job each, with nothing to sign in to. Open one, paste a query or a password, and what you typed stays in the page rather than going to a server. Because we work on a test data product, we spent a lot of time with formatters and hash generators that answer for SQL in general and leave the Postgres specifics to you, so eventually we wrote our own.
Write and check SQL
- FormatterIndents a Postgres query and puts the keywords where you expect them, so a long CTE stops being one unreadable line. Minifies it again when you need it back on one line.
- Syntax checkerRuns your statement through the grammar Postgres itself uses and reports the same message the server would, with the character position it stopped at.
- String escaperQuotes a value for Postgres the way quote_literal does, and also as an E-string, dollar quoted, as a LIKE pattern and as an identifier. Paste any of those back and it returns the plain text.
Connect and authenticate
- Connection string builderFills in host, port, database and credentials, then writes the same connection out as a URI, a psql command, a JDBC URL and a DATABASE_URL. Passwords get percent-encoded for you.
- Password hash generatorTurns a password into the verifier string Postgres stores, in the SCRAM-SHA-256 format CREATE ROLE accepts, plus the legacy md5 form and a bcrypt hash for Supabase auth rows.
- Pool size calculatorEnter your server size and how many application instances run against it, and get max_connections, a pool size for each worker process and the PgBouncer lines that go with them. Presets cover the managed providers.
Reset, migrate, decode
- Truncate generatorPaste the DDL of a schema and it writes the TRUNCATE statement for every table in it, with RESTART IDENTITY and CASCADE where you want them. When cascading is not an option, it gives you the DELETE order instead.
- Enum migration generatorReads a CREATE TYPE ... AS ENUM, then builds the migration for the values you add, rename or remove. The rollback script and the query that finds every column using the type come with it.
- Error code lookupGive it a SQLSTATE code, a condition name or a whole error line copied out of a log. It answers with what the condition means, the class it sits in and what usually produces it.
- UUID v7 generatorGenerates time-ordered identifiers in batches, decodes the timestamp back out of one, and hands you the SQL to make them a column default.
Some of these tools lean on open source libraries, and the licenses page names the ones each page loads.
Frequently asked questions
Free Postgres utilities that each do one job, such as formatting a query, checking its syntax against the grammar PostgreSQL itself uses, or writing the TRUNCATE statement for a schema. Each one runs as JavaScript in your tab, and the syntax checker loads the PostgreSQL parser itself, compiled to WebAssembly, to do it.
No. The work happens in the page, and there is no endpoint on our side that receives SQL, passwords or schemas. The one thing recorded is that a tool was used, under its own name, with none of your text attached.
A hosted editor connects to a database of yours over the network and keeps the credentials for it. These pages connect to nothing, so there is no database to point them at and nothing to keep. Nor does anything here execute a statement: the syntax checker reads one through the PostgreSQL grammar and stops where the grammar does.
The syntax checker, which reports the same message and character position the server would, so you see where parsing stopped. When the statement parses and the server still refuses it, paste the SQLSTATE from the error into the error code lookup. The formatter helps once the query is long enough that reading it is the problem.
Seedfast connects to a live PostgreSQL database and reads its schema on every run, then writes connected rows into it from one command.
Read how the first seed works