Open a repository
Drop a project folder on the launcher. Alcuin finds its databases in compose files, .env and config, along with its migration tools and seeds. It runs nothing.
Try the review
Nothing in Alcuin changes your database until you have read it as SQL and said yes. Here is how that feels, with sample data, right in your browser.
Simulation · sample data
| Row | id | customer_id | status | total | currency | note |
|---|
Runs in one transaction on Development.
If a row changed under you since you loaded it, Alcuin reports it rather than overwriting it.
Edit cells, add rows, change a column. Each change is marked and waits. Staged edits are saved locally, so a crash keeps them.
See every statement that will run, in order. Structure changes come with notes on locks and table rewrites, and safer forms where they exist.
Everything runs in one transaction, when you say so. A row someone else changed under you is reported, never silently overwritten.
Every connection is marked local, development, staging or production. Production opens read-only, asks before any structure change, stops statements after 30 seconds and lock waits after 3, and locks itself again 15 minutes after you unlock it. All the rules
Drop a project folder on the launcher. Alcuin finds its databases in compose files, .env and config, along with its migration tools and seeds. It runs nothing.
Change a dev database however you like, then see what your migrations are missing. Alcuin writes the net change into your migration folder in your tool's own format, proven by a replay.
See each role's privileges, direct or inherited. View a table's data as any role you can switch to, and test its policies.
Explain a slow statement, compare two plans side by side, and jump from a plan node to the SQL that caused it.
Alcuin ships a small core and adds the rest as modules. Tell us what matters to you in Discussions.
Free and open source, for macOS and Linux. No account, no telemetry.