Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
66f76a4
feat(migrate): add export clerk and export supabase, and import by ex…
royanger Oct 6, 2026
6e747cd
docs(changeset): Add clerk migrate export for Clerk and Supabase, and…
royanger Oct 6, 2026
d42b5d9
fix(build): keep the bun builtins external in the node bundle
royanger Oct 7, 2026
0887f04
fix(migrate): make an existing --output file owner-only too
royanger Oct 7, 2026
65f41fb
fix(migrate): time out a libsql request that stops responding
royanger Oct 7, 2026
65c30f5
fix(migrate): redact credentials for schemes with - or .
royanger Oct 7, 2026
efb7a48
fix(migrate): never prompt under --json, even at a terminal
royanger Oct 7, 2026
14c6763
fix(migrate): redact credentials from database error messages
royanger Oct 7, 2026
c8b9997
fix(migrate): give MySQL's missing-table errors the table advice
royanger Oct 8, 2026
9a1c151
docs(migrate): say why -y is held per run, now that withInputRetry re…
royanger Oct 8, 2026
8c2c019
fix(migrate): let the Supabase source split names instead of the expo…
royanger Oct 8, 2026
5c41a6f
fix(migrate): refuse an export clerk --instance the key does not address
royanger Oct 8, 2026
a7c2d8d
fix(migrate): retry only the connect for a Supabase export, not the read
royanger Oct 8, 2026
d79727e
fix(migrate): name an export file outside its run folder in the clean…
royanger Oct 8, 2026
e9d59c1
fix(migrate): overlap export clerk's pages so a deletion can't skip a…
royanger Oct 8, 2026
658fa6d
fix(migrate): let -y stand the exports' prompts down, as it says
royanger Oct 8, 2026
d0540cf
fix(migrate): refuse an export run ID whose file changed since the ex…
royanger Oct 8, 2026
4967bc8
fix(migrate): check an export run's file again where its users are read
royanger Oct 8, 2026
c21e843
fix(migrate): check an export run's file after the last read of it
royanger Oct 8, 2026
9286e23
fix(migrate): read a path import's envelope and users from one revision
royanger Oct 9, 2026
2437b1e
fix(migrate): make an existing --output owner-only before writing the…
royanger Oct 9, 2026
e9f467e
fix(migrate): link a run continued by export run ID to its export
royanger Oct 9, 2026
e792948
fix(migrate): refuse a non-Postgres URL for a Supabase export before …
royanger Oct 9, 2026
2fa63fd
fix(migrate): write an export to a temp file and rename it over --output
royanger Oct 9, 2026
0cece06
docs(migrate): note the Supabase export's memory ceiling
royanger Oct 9, 2026
140dcdf
docs(migrate): say export supabase takes a Postgres connection string…
royanger Oct 9, 2026
fee9c62
chore(migrate): drop the CliError import the Postgres-only refusal le…
royanger Oct 9, 2026
73b1f87
fix(migrate): refuse a non-Postgres --db-url for Supabase on every pa…
royanger Oct 14, 2026
0a13f0d
fix(migrate): refuse an export file whose source this CLI does not kn…
royanger Oct 14, 2026
8c5a04b
fix(migrate): name the path when an export's write fails, and release…
royanger Oct 14, 2026
c2212ec
fix(migrate): refuse an export --output that does not end in .json
royanger Oct 14, 2026
12d243f
docs(migrate): say why an unreachable database is asked for again
royanger Oct 14, 2026
fdffc34
fix(migrate): name an --output export on another Windows drive in the…
royanger Oct 14, 2026
aede72c
fix(migrate): export Supabase's is_anonymous, so the import skips ano…
royanger Oct 14, 2026
a8e1798
fix(migrate): page the Clerk export by cursor, ask before exporting t…
royanger Oct 15, 2026
782ae64
refactor(migrate): read the terminal check from lib/terminal.ts in th…
royanger Oct 15, 2026
c27bf1b
fix(migrate): offer the same flat instance list when unlinked, put th…
royanger Oct 15, 2026
aa1d65c
fix(migrate): link a continue by export run ID with nothing left to i…
royanger Oct 16, 2026
9da0cfa
fix(migrate): link a complete run named by its export run ID to the e…
royanger Oct 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/migrate-export.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"clerk": minor
---

Add `clerk migrate export clerk` and `clerk migrate export supabase`, and let `clerk migrate import` take the export's run ID in place of a file and `--source`. `clerk migrate` is still experimental and needs `CLERK_EXPERIMENTAL=migrate`.
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -44,3 +44,7 @@ test/e2e/.har

# Local planning/spec docs
docs/superpowers/

# Local migration exports and the credentials that produced them
exports/
*service-account*.json
2 changes: 1 addition & 1 deletion packages/cli-core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
},
"type": "module",
"scripts": {
"build": "bun build ./src/cli.ts --outfile ./dist/cli.js --target node --external @napi-rs/keyring --minify",
"build": "bun build ./src/cli.ts --outfile ./dist/cli.js --target node --external @napi-rs/keyring --external bun --external bun:sqlite --minify",
"build:compile": "bun build --compile --minify --no-compile-autoload-dotenv --no-compile-autoload-bunfig ./src/cli.ts --outfile ./dist/clerk",
"dev": "bun run ./src/cli.ts",
"typecheck": "tsc --noEmit -p tsconfig.json",
Expand Down
307 changes: 253 additions & 54 deletions packages/cli-core/src/commands/migrate/README.md

Large diffs are not rendered by default.

Loading
Loading