db-migrations
Skill16k starsChanged 11 days agoMITView on GitHub
Create a database migration with Drizzle on a fresh Neon branch, and check it is safe to run against production under load. Use when changing the packages/db schema, generating migrations, or reviewing one.
- Reads credentials
- Deletes or force-pushes
7 other projects use a version of this; 1 new project in the last 4 weeks, against 0 the 4 before.
Adopted by
Surging: 1 new project took it in the last 4 weeks, none the 4 weeks before.thin data
Most recently taken up by
- pankaj-mahaur/Agent-Daemontheir own version, first seen Nov 6, 2026
- lobehub/lobehubtheir own version, first seen Nov 5, 2026
- superset-sh/supersetword for word, first seen Nov 2, 2026
- d4rken/clankermuxtheir own version, first seen Nov 2, 2026
- gabrielbauman/skillstheir own version, first seen Nov 1, 2026
- rafapeixer/java-skillstheir own version, first seen Oct 20, 2026
Who's talking about ParadevAI/Paradev
- Alex Hitt“Paradev GitHub Explained: Parallel AI Workspaces, Worktrees, Ports, and Security Tradeoffs”YouTube · Oct 29, 2026 · 432 views
- benjamincanac/whichcodingtools“[Outdated] superset was renamed to Paradev”GitHub · Nov 4, 2026 · 1 reactions
- @github-trending-js.bsky.social“📦 ParadevAI / Paradev ⭐ 15,665 (+53) 🗒 TypeScript Paradev (formerly Superset) is an agentic IDE to …”Bluesky · Oct 28, 2026 · 1 likes
- sudosubin/agents.nix“claude-code-marketplaces.github.paradevai.paradev: 0-unstable-2026-11-10 → 0-unstable-2026-11-11”GitHub · Nov 11, 2026
- sudosubin/agents.nix“agent-skills.github.paradevai.paradev: bdd0a5b → 45118b8”GitHub · Nov 10, 2026
The biggest 5 of 64 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 64
Talked about on GitHub, the web, Bluesky and YouTube (64 times).
On GitHub · 50
- Nov 4, 2026[Outdated] superset was renamed to Paradev — benjamincanac/whichcodingtools1 reaction · 1 comment
- Nov 11, 2026claude-code-marketplaces.github.paradevai.paradev: 0-unstable-2026-11-10 → 0-unstable-2026-11-11 — sudosubin/agents.nix0 reactions
- Nov 10, 2026agent-skills.github.paradevai.paradev: bdd0a5b → 45118b8 — sudosubin/agents.nix0 reactions
- Nov 10, 2026claude-code-marketplaces.github.paradevai.paradev: d456e51 → d11a91f — sudosubin/agents.nix0 reactions
- Nov 10, 2026claude-code-marketplaces.github.paradevai.paradev: bdd0a5b → d456e51 — sudosubin/agents.nix0 reactions
45 more on GitHub
- Nov 10, 2026claude-code-marketplaces.github.paradevai.paradev: 0-unstable-2026-11-09 → 0-unstable-2026-11-10 — sudosubin/agents.nix0 reactions
- Nov 10, 2026agent-skills.github.paradevai.paradev: 0-unstable-2026-11-09 → 0-unstable-2026-11-10 — sudosubin/agents.nix0 reactions
- Nov 9, 2026claude-code-marketplaces.github.paradevai.paradev: a865880 → cedc22d — sudosubin/agents.nix0 reactions
- Nov 9, 2026agent-skills.github.paradevai.paradev: b5b6302 → 88b6412 — sudosubin/agents.nix0 reactions
- Nov 9, 2026claude-code-marketplaces.github.paradevai.paradev: e847be5 → a865880 — sudosubin/agents.nix0 reactions
- Nov 9, 2026agent-plugins.github.paradevai.paradev: 0-unstable-2026-11-03 → 0-unstable-2026-11-09 — sudosubin/agents.nix0 reactions
- Nov 9, 2026claude-code-plugins.github.paradevai.paradev: 0-unstable-2026-11-03 → 0-unstable-2026-11-09 — sudosubin/agents.nix0 reactions
- Nov 9, 2026agent-skills.github.paradevai.paradev: 0-unstable-2026-11-08 → 0-unstable-2026-11-09 — sudosubin/agents.nix0 reactions
- Nov 9, 2026claude-code-marketplaces.github.paradevai.paradev: 0-unstable-2026-11-08 → 0-unstable-2026-11-09 — sudosubin/agents.nix0 reactions
- Nov 8, 2026agent-skills.github.paradevai.paradev: b77bc04 → 041c296 — sudosubin/agents.nix0 reactions
- Nov 8, 2026claude-code-marketplaces.github.paradevai.paradev: b77bc04 → 106428f — sudosubin/agents.nix0 reactions
- Nov 8, 2026agent-skills.github.paradevai.paradev: 5aa1cf3 → b77bc04 — sudosubin/agents.nix0 reactions
- Nov 8, 2026claude-code-marketplaces.github.paradevai.paradev: 61645f4 → b77bc04 — sudosubin/agents.nix0 reactions
- Nov 8, 2026claude-code-marketplaces.github.paradevai.paradev: 0-unstable-2026-11-07 → 0-unstable-2026-11-08 — sudosubin/agents.nix0 reactions
- Nov 8, 2026agent-skills.github.paradevai.paradev: 0-unstable-2026-11-07 → 0-unstable-2026-11-08 — sudosubin/agents.nix0 reactions
- Nov 7, 2026agent-skills.github.paradevai.paradev: 0-unstable-2026-11-06 → 0-unstable-2026-11-07 — sudosubin/agents.nix0 reactions
- Nov 7, 2026claude-code-marketplaces.github.paradevai.paradev: 0-unstable-2026-11-06 → 0-unstable-2026-11-07 — sudosubin/agents.nix0 reactions
- Nov 7, 2026🔍 CLI Discovery: 2026-11-07 — 7 candidates found — RealZST/harnesskit-resources0 reactions
- Nov 7, 2026Import sessions and worktrees from Conductor, Claude Code and Codex (Paradev, Ace) — alexec/Agents0 reactions · 5 comments
- Nov 7, 2026claude-code-marketplaces.github.paradevai.paradev: 9c6f098 → 19db630 — sudosubin/agents.nix0 reactions
- Nov 6, 2026agent-skills.github.paradevai.paradev: 9c6f098 → 19db630 — sudosubin/agents.nix0 reactions
- Nov 6, 2026agent-skills.github.paradevai.paradev: 53f1ac1 → 9c6f098 — sudosubin/agents.nix0 reactions
- Nov 6, 2026claude-code-marketplaces.github.paradevai.paradev: 08cb35c → 9c6f098 — sudosubin/agents.nix0 reactions
- Nov 6, 2026agent-skills.github.paradevai.paradev: 0-unstable-2026-11-05 → 0-unstable-2026-11-06 — sudosubin/agents.nix0 reactions
- Nov 6, 2026claude-code-marketplaces.github.paradevai.paradev: 0-unstable-2026-11-05 → 0-unstable-2026-11-06 — sudosubin/agents.nix0 reactions
- Nov 6, 2026agent-skills.github.paradevai.paradev: bcc2455 → 533cf1c — sudosubin/agents.nix0 reactions
- Nov 5, 2026agent-skills.github.paradevai.paradev: 3b5472d → bcc2455 — sudosubin/agents.nix0 reactions
- Nov 5, 2026Update Superset as an open-source alternative to Conductor: renamed to Paradev, now MIT — junaid33/opensource.builders0 reactions
- Nov 5, 2026claude-code-marketplaces.github.paradevai.paradev: 0cbf9fb → bcc2455 — sudosubin/agents.nix0 reactions
- Nov 5, 2026agent-skills.github.paradevai.paradev: 0-unstable-2026-11-04 → 0-unstable-2026-11-05 — sudosubin/agents.nix0 reactions
- Nov 5, 2026claude-code-marketplaces.github.paradevai.paradev: 0-unstable-2026-11-04 → 0-unstable-2026-11-05 — sudosubin/agents.nix0 reactions
- Nov 4, 2026agent-skills.github.paradevai.paradev: 4cc2e79 → 45e426e — sudosubin/agents.nix0 reactions
- Nov 4, 2026data(superset): rename to Paradev, MIT license, new links — benjamincanac/whichcodingtools0 reactions · 1 comment
- Nov 4, 2026Rename Superset to Paradev — filipecalegario/awesome-vibe-coding0 reactions
- Nov 4, 2026Resource suggestion: Paradev — RoggeOhta/awesome-codex-cli0 reactions
- Nov 4, 2026claude-code-marketplaces.github.paradevai.paradev: 4cccb5b → 44d0ad4 — sudosubin/agents.nix0 reactions
- Nov 4, 2026Undo the files an agent changed in a turn — alexec/Agents0 reactions · 1 comment
- Nov 4, 2026agent-skills.github.paradevai.paradev: 0-unstable-2026-11-03 → 0-unstable-2026-11-04 — sudosubin/agents.nix0 reactions
- Nov 4, 2026claude-code-marketplaces.github.paradevai.paradev: 0-unstable-2026-11-03 → 0-unstable-2026-11-04 — sudosubin/agents.nix0 reactions
- Nov 4, 2026agent-skills.github.paradevai.paradev: 142df44 → 615ea54 — sudosubin/agents.nix0 reactions
- Nov 3, 2026claude-code-marketplaces.github.paradevai.paradev: 0745d4b → 2e42c29 — sudosubin/agents.nix0 reactions
- Nov 3, 2026agent-plugins.github.paradevai.paradev: 0-unstable-2026-11-02 → 0-unstable-2026-11-03 — sudosubin/agents.nix0 reactions
- Nov 3, 2026claude-code-plugins.github.paradevai.paradev: 0-unstable-2026-11-02 → 0-unstable-2026-11-03 — sudosubin/agents.nix0 reactions
- Nov 3, 2026agent-skills.github.paradevai.paradev: 0-unstable-2026-11-02 → 0-unstable-2026-11-03 — sudosubin/agents.nix0 reactions
- Nov 3, 2026claude-code-marketplaces.github.paradevai.paradev: 0-unstable-2026-11-02 → 0-unstable-2026-11-03 — sudosubin/agents.nix0 reactions
On the web · 11
- Nov 4, 2026Paradev: Run Armies of Coding Agents Side by Side — dev.to
- Nov 2, 2026Paradev's Workspace Wants to Run an Army of Coding Agents in Parallel — startuply.vc
- Oct 27, 2026The next developer tool fight isn't about which agent writes the best code. It's about who helps you manage ten of them at once. | A.X.Praveen Kumar — linkedin.com
- Oct 26, 2026Excited to announce Paradev (formerly Superset) raise a $11.5m seed round led by Union Square Ventures, with participation from Y Combinator, BoxGroup, Orange Collective, Paul Graham and many more amazing funds and … | Avi Peltz — linkedin.com
- Oct 26, 2026For my personal projects, I used to use iTerm with a bunch of split panes, but after switching to Superset (now Paradev) I immediately noticed a significant QOL improvement! If ur looking … | Brian Wang — linkedin.com
6 more on the web
- Oct 26, 2026Meet Paradev (formerly Superset)! We’re thrilled to back them as part of their $11.5M seed round led by Union Square Ventures 🚀 | commit — linkedin.com
- Oct 26, 2026Paradev is building the IDE for running coding agents. | Fredrik Björk — linkedin.com
- Oct 26, 2026This time last year Paradev (formerly Superset) didn't even exist. Today, we're used by 1 in 8 Fortune 500 companies. Over 100,000 developers from 180+ countries. | Kiet Ho — linkedin.com
- Oct 26, 2026Paradev introduces a unified workspace designed to run Claude Code, Codex, OpenCode, and other coding agents simultaneously without disrupting existing workflows. | Kirill Pokidov — linkedin.com
- Oct 26, 2026Superset is now Paradev, and we raised an $11.5M seed led by Union Square Ventures, alongside Y Combinator, BoxGroup, Orange Collective and many amazing funds and angels. | Paradev (formerly Superset) — linkedin.com
- Oct 26, 2026Elite developers use Paradev (formerly Superset) (paradev.com) - and today they announced a $11.5m funding round led by Union Square Ventures! | Dan Von Kohorn — linkedin.com
On Bluesky · 2
- Oct 28, 2026📦 ParadevAI / Paradev ⭐ 15,665 (+53) 🗒 TypeScript Paradev (formerly Superset) is an agentic IDE to orchestrate 100+ coding agents in… — @github-trending-js.bsky.social1 likes and repost
- Nov 7, 2026📦 ParadevAI / Paradev ⭐ 16,014 (+62) 🗒 TypeScript Paradev is an open-source Codex App and Conductor alternative. Orchestrate an army… — @github-trending-js.bsky.social0 likes and reposts · 1 reply
On YouTube · 1
- Oct 29, 2026Paradev GitHub Explained: Parallel AI Workspaces, Worktrees, Ports, and Security Tradeoffs — Alex Hitt432 views
Used with
Projects with it also use testing.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
NVIDIASkilltesting
Run Python and Rust tests for physicsnemo-curator using uv + pytest with coverage reporting via pytest-cov, and cargo-nextest for Rust tests. Includes benchmark workflows with pytest-benchmark and criterion.
Also in 3 projects that use this
Other versions7 projects use a version of this.
Word for word · 1
- superset-sh/superset★ 16k100% same
Edited · 0
None found.
Wrote their own version · 6
- lobehub/lobe-chat★ 84ksame name
- lobehub/lobehub★ 84ksame name
- d4rken/clankermux★ 11same name
- gabrielbauman/skills★ 1same name
- rafapeixer/java-skills★ 1same name
- pankaj-mahaur/Agent-Daemon★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository14 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- cdp-verificationSkill
- decideSkill
- dev-doctorSkill
- incident-triageSkill
- mobile-demo-filmSkill
- mobile-demo-recordSkill
- mobile-eas-devSkill
- mobile-sim-verificationSkill
- redesignSkill
- superset-settingsSkill
- ticket-formatSkill
- trpc-compatSkill
The file
We split this skill into the rules it gives an agent
5 rules. 0 are common, 3 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 6 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 18
Run bunx drizzle-kit generate --name="<sample_name_snake_case>" from packages/db.
- Distinctive: line 42
Run this read-only against production, with the tables your migration touches:
- Distinctive: line 69
Every lock an early statement takes is held until the last statement of the last file finishes.
- Distinctive: line 127
Write two pgbench scripts: reads on the parent tables your migration locks, and inserts into the child table.
- Very specific: line 129
Start pgbench with both scripts (pgbench -n -f reads.sql -f inserts.sql -c <clients> -T <seconds>).
“Common” is measured: kept by at least 6 in 10 of the 6 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
DB migrations
A migration that is correct on a quiet database can still take production down. On 17 September
2026 migration 0119 rewrote ingest.webhook_events (about 540 GB with indexes) while holding
ACCESS EXCLUSIVE on the auth tables, and took the API down. Generate the migration with the steps
below, then clear the safety checklist before opening the PR.
Generate
- Spin up a new Neon branch and point the root
.envfiles at it.NEON_ORG_IDandNEON_PROJECT_IDare in.env; the Neonlist_projectstool needsorg_idpassed in. - Change the schema in
packages/db/src/schema/. - Run
bunx drizzle-kit generate --name="<sample_name_snake_case>"frompackages/db. - Apply it to your dev branch only. Never apply against a shared or production database; those go through the deploy flow described under "What the production deploy does".
Never hand-edit packages/db/drizzle/ (.sql files, meta/_journal.json, snapshots) without
explicit user confirmation. Change the schema and let drizzle-kit generate write the files. The
one legitimate reason to ask for that confirmation is statement order (rule 3).
Safety checklist
- Production sizes checked for every table the migration touches (query below)
- No column type change on a large or busy table (rule 2)
- Locks are taken child table first, then the tables it references (rule 3)
- No long ACCESS EXCLUSIVE on a hot table (rule 4)
- Every statement finishes well inside 60 seconds at production size
- Rehearsed on a Neon branch of production under load, when the migration locks a hot table (rule 4) or rewrites or scans a large one. Otherwise the size and lock checks are enough
- If reads move to a new table or column, the data moves in the same release (rule 5)
- No tRPC input or output change in the same PR, so a bad API change can still be reverted
(#7726; see
.agents/skills/trpc-compat/SKILL.md) - After changing an already-pushed migration, the PR's preview Neon branch was deleted
Check production sizes first
Run this read-only against production, with the tables your migration touches:
begin transaction read only;
select c.oid::regclass as table_name,
pg_size_pretty(pg_total_relation_size(c.oid)) as total_size,
c.reltuples::bigint as approx_rows
from pg_class c
where c.oid in ('ingest.webhook_events'::regclass, 'automation_events'::regclass);
rollback;Sizes on 2026-09-19, indexes included:
| Table | Size | Rows |
ingest.webhook_events | about 540 GB | ~199M |
automation_events | about 245 GB | ~54M |
Rules
1. All pending migrations run in ONE transaction
PgDialect.migrate in drizzle-orm 0.45.2 (pg-core/dialect.js) wraps the loop over every pending
migration in a single session.transaction.
- Splitting a change across several migration files gives no lock isolation.
- Every lock an early statement takes is held until the last statement of the last file finishes.
2. Never change a column's type on a large, busy table in a normal migration
ALTER COLUMN ... SET DATA TYPE between types that are not binary-coercible rewrites the whole
table and its indexes under ACCESS EXCLUSIVE. Enum to text on ingest.webhook_events was the
outage.
Safe shapes:
- For an enum,
ALTER TYPE ... ADD VALUE. - Otherwise add a new column, backfill it in batches, and swap in a later release.
3. Take locks in the order the application does: child first, then its parents
An insert locks its own table, then takes RowShare on each foreign-key parent. DROP TABLE ...
CASCADE, DROP CONSTRAINT and ADD CONSTRAINT ... FOREIGN KEY lock the referenced tables too. A
migration that locks a parent before the child deadlocks against in-flight inserts.
- The generated order of 0119 locked
auth.organizationsbeforeautomation_eventsand deadlocked 3 attempts out of 3 under load. - Hand-ordering the
automation_eventsstatement first fixed it (4 of 4).
drizzle-kit picks statement order, so this is the one legitimate reason to hand-order a generated
file. Get explicit user confirmation first, and say why in a SQL comment above the moved statement,
because regenerating restores the bad order. See
packages/db/drizzle/0119_plugin_oauth_clients_and_connectors.sql for the pattern.
4. Know what is hot
| Table | Why it is hot |
auth.users, auth.organizations | Read by every authenticated request. ACCESS EXCLUSIVE for more than a moment is an outage. |
automation_events, ingest.webhook_events | Held in a transaction almost continuously by the dispatch sweep (redispatchUndispatched) and the retention job (enforce-retention). A 5 second lock wait succeeded from about 44% of start times. A migration that needs their table lock should first wait on the job's own advisory lock (the singleFlight key), which lets the running batch finish without queueing inserts; 0122_webhook_events_swap_to_short_retention.sql is the pattern. |
Because of rule 1, a statement queued behind a lock on automation_events keeps every lock the
transaction already holds, including any on the auth tables.
5. Moving where data is READ from means moving the data in the same release
#7317 pointed every integration lookup at a new, empty connections table with no backfill. 2,393
live integrations read as disconnected until packages/trpc/scripts/backfill-connections.ts ran.
CI cannot catch this: unit tests mock the lookup layer
(mock.module("@superset/trpc/connectors", ...)). Ship the backfill with the schema change.
Rehearse on a Neon branch of production, under load
A workspace's own Neon branch is a copy-on-write child of production at the same 0.25 to 2 CU size. A quiet rehearsal is not enough: the first one for 0119 passed in 2.3s and missed the deadlock entirely. pgbench found it immediately.
Rehearse when the migration locks a table in rule 4 or rewrites or scans a large table. A migration that only touches small tables that no job holds open does not need it: check the sizes, the lock order and the statement types, and say in the PR that you did not rehearse and why.
- Point at a production-child branch that does not have your migration yet. The workspace
.envhas twoDATABASE_URLentries and the last one is the workspace branch. - Write two pgbench scripts: reads on the parent tables your migration locks, and inserts into the child table.
- Start pgbench with both scripts (
pgbench -n -f reads.sql -f inserts.sql -c <clients> -T <seconds>). - While it runs, apply the migration with the production settings:
PGOPTIONS="-c lock_timeout=5s -c statement_timeout=60s" bun drizzle-kit migrate. - Repeat a few times. One pass proves little; 0119 was judged on 3 of 3 failures and 4 of 4 passes.
What the production deploy does
Job deploy-database in .github/workflows/deploy-production.yml:
- A concurrency group, so two migration runs never overlap.
PGOPTIONS: -c lock_timeout=5s -c statement_timeout=60s.- Up to 8 attempts, retried only when the log contains "deadlock detected" or "lock timeout". Any other failure stops the deploy.
- Then
packages/db/src/verify-migrations-applied.ts, which fails unless the newest migration recorded in the database equals the newest journal entry.
A migration that needs longer than 60 seconds for one statement fails by design. Do that work online instead (rule 2).
A reused preview branch proves nothing
deploy-preview.yml names the Neon branch after the PR head ref and reuses it across pushes. Once
the branch has applied a migration, later pushes that change that migration make the PR's database
check a no-op. Delete the Neon branch to force a real run.
Workflow pitfalls from the same incident (pipefail, production secrets) are in
docs/deploy-workflows.md.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

