Coming from PopSQL
PopSQL is in limited support. Your queries have somewhere to go.
PopSQL stopped shipping features and postponed its shutdown with no new date. Move on your schedule, not on a 90-day notice: DataRunner does the same work — team SQL, variables, charts, dashboards and scheduled delivery — and imports what you saved there.
Bring what you already have
Take your Git sync folder
PopSQL Git sync wrote every shared query as a .sql file, in folders. Zip that folder — or use a single .sql file.
Import in Settings → Import
Pick PopSQL, upload the zip and check the preview before anything is created. Each file becomes a private query, in the folder it was in.
Variables stay variables
{{customer_id}} and '{{start_date}}' become :customer_id and :start_date, bound as parameters — no quotes in the SQL and no injection risk. Liquid conditions ({% if %}, {% unless %}, {% case %}) keep working: they choose parts of the SQL, and values always go as parameters.
What you used, and where it is here
| In PopSQL | In DataRunner |
|---|---|
| Editor with autocomplete and run-statement-at-cursor | Schema-aware autocomplete with the catalog's descriptions, ⌘↵ on the statement, formatting, row limit — and queries save themselves |
| SQL linting with organization rules | Lint in the editor (SELECT *, DELETE without WHERE, PopSQL {{variables}} with a fix to :variable…), each rule's level set by an admin |
| Single session, temporary tables across runs | Persistent session on Postgres: a temporary table from one run is there for the next, one run at a time |
| Search across queries, tables and columns | ⌘K finds a query by its SQL text, and the catalog's tables and columns |
| Conditional formatting and results beside the editor | Color rules saved with the query; results below or beside, remembered |
| Variables: text, number, date, dropdown, multi-select | The same types, with options from another query and values enforced on the server |
| Charts and dashboards, scheduled to email and Slack | 13 chart types, dashboards with filters, PDF — and the dashboard sent on a schedule, by email or Slack |
| Scheduled queries to email and Slack, "only if results", with approval | Email, Slack, Teams, Telegram, WhatsApp and webhooks, with the same condition — and, if the workspace wants it, an admin's approval, again on every change of timing, SQL or recipients |
| CSV link for Google Sheets | "Copy for Google Sheets": =IMPORTDATA with the public link, under the same password and variable rules |
| Presentation links with variables | Interactive public links, with a password and an expiry date |
| Notebooks | Notebooks that join results from different databases in one SQL |
| Direct connections and a bridge for private networks | SSH tunnel with the server key confirmed |
| Folders, version history, Git sync, catalog | All of that. Git sync reads and writes both ways — point it at the repository PopSQL used and {{variables}} arrive converted. Private queries stay out of Git. |
| Explorer role | Viewer role: runs what is saved and changes filters, never edits SQL |
| Several people in one query; private, team views or team edits | The same three levels. Live editing: everyone's text at once, with each person's cursor and selection, named; people who only view follow along live. Comments on the query itself |
What we do not have yet
- Running dbt Core projects. The catalog reads the dbt manifest.
- Liquid loops and text filters ({% for %}, | upcase). Conditions work.
- Persistent sessions outside Postgres, and over an SSH tunnel.
Start with what is ready
Create the account, connect the database and import the PopSQL folder. Queries arrive private; you share them when you want.