supabee 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -4,18 +4,20 @@
4
4
  [![npm version](https://img.shields.io/npm/v/supabee)](https://www.npmjs.com/package/supabee)
5
5
  [![license](https://img.shields.io/npm/l/supabee)](./LICENSE)
6
6
 
7
- Split large Supabase schema and data dump files into smaller, organized, version-control-friendly SQL files.
7
+ Orchestrate post-seed migrations safely and split schema/data SQL into organized files.
8
8
 
9
9
  ## Why?
10
10
 
11
- When you run `supabase db dump`, you get a single monolithic SQL file that can be thousands of lines long. This makes it hard to:
11
+ When your local reset/start flow has both pre-seed and post-seed migrations, migration ordering can diverge from production behavior. `supabee` helps you defer and re-apply post-seed migrations safely, and it also makes large SQL dumps manageable by splitting them into focused files.
12
+
13
+ Splitting helps with:
12
14
 
13
15
  - **Review changes** in pull requests (one giant diff vs. focused per-table diffs)
14
16
  - **Navigate** your database structure (finding a specific table in 5000 lines vs. opening a file)
15
17
  - **Seed selectively** (load only what you need instead of everything)
16
18
  - **Resolve merge conflicts** (conflicts in small files vs. one massive file)
17
19
 
18
- `supabee` takes those dump files and splits them into categorized, ordered files that reconstruct back to the original — verified by built-in validation.
20
+ `supabee` focuses on post-seed-safe orchestration (`db reset` / `start`) plus schema/data splitting workflows.
19
21
 
20
22
  ## Prerequisites
21
23
 
@@ -50,21 +52,19 @@ supabase link
50
52
 
51
53
  You'll be prompted for your project ref and database password. See the [Supabase CLI docs](https://supabase.com/docs/reference/cli/supabase-link) for details.
52
54
 
53
- ### 3. Dump schema and data
55
+ ### 3. Run the primary workflows
54
56
 
55
57
  ```bash
56
- supabase db dump > supabase/schemas/prod-schemas.sql
57
- supabase db dump --data-only > supabase/seeds/prod-data.sql
58
+ supabee sync schema
59
+ supabee sync data
60
+ supabee db reset [cutoff_timestamp]
61
+ supabee start [cutoff_timestamp]
58
62
  ```
59
63
 
60
- ### 4. Split, reconstruct, and validate
61
-
62
- ```bash
63
- supabee schema
64
- supabee data
65
- ```
64
+ `sync` commands run end-to-end:
66
65
 
67
- Each command runs the full chain: **split** → **reconstruct** → **validate**.
66
+ - schema: `supabase db dump` -> split -> reconstruct -> validate
67
+ - data: `supabase db dump --data-only` -> split -> reconstruct -> validate
68
68
 
69
69
  ## Commands
70
70
 
@@ -78,7 +78,7 @@ supabee init
78
78
 
79
79
  ### `schema`
80
80
 
81
- Splits a schema dump into categorized folders:
81
+ Processes an existing schema dump into categorized folders:
82
82
 
83
83
  ```
84
84
  supabase/schemas/split/
@@ -109,7 +109,7 @@ supabee schema validate
109
109
 
110
110
  ### `data`
111
111
 
112
- Splits a data dump into per-table files with configurable row/statement limits:
112
+ Processes an existing data dump into per-table files with configurable row/statement limits:
113
113
 
114
114
  ```bash
115
115
  # Full chain (split → reconstruct → validate)
@@ -121,16 +121,73 @@ supabee data reconstruct
121
121
  supabee data validate
122
122
  ```
123
123
 
124
+ ### `sync schema`
125
+
126
+ Dumps schema from the linked Supabase project, then runs full schema processing:
127
+
128
+ ```bash
129
+ supabee sync schema
130
+ supabee sync schema --input supabase/schemas/prod-schemas.sql --output supabase/schemas/split
131
+ supabee sync schema --backup
132
+ ```
133
+
134
+ ### `sync data`
135
+
136
+ Dumps data (`--data-only`) from the linked Supabase project, then runs full data processing:
137
+
138
+ ```bash
139
+ supabee sync data
140
+ supabee sync data --input supabase/seeds/prod-data.sql --output supabase/seeds/split
141
+ supabee sync data --backup
142
+ supabee sync data --no-backup
143
+ ```
144
+
145
+ ### `db reset`
146
+
147
+ Defers post-seed migrations newer than the cutoff timestamp, runs `supabase db reset`, restores deferred migrations, then reapplies them.
148
+
149
+ If `[cutoff_timestamp]` is omitted, `supabee` auto-detects it from `supabase migration list --linked` by taking the latest aligned local/remote migration version.
150
+ This requires `supabase link` to be configured.
151
+
152
+ ```bash
153
+ # default re-apply mode: supabase migration up
154
+ supabee db reset 20260309180959
155
+ supabee db reset
156
+
157
+ # optional re-apply mode: psql
158
+ supabee db reset 20260309180959 --psql
159
+ ```
160
+
161
+ ### `start`
162
+
163
+ Defers post-seed migrations newer than the cutoff timestamp, runs `supabase start`, restores deferred migrations, then reapplies them.
164
+
165
+ If `[cutoff_timestamp]` is omitted, `supabee` auto-detects it from `supabase migration list --linked` the same way as `db reset`.
166
+
167
+ ```bash
168
+ # explicit cutoff
169
+ supabee start 20260309180959
170
+
171
+ # auto cutoff from linked migration alignment
172
+ supabee start
173
+
174
+ # optional re-apply mode: psql
175
+ supabee start --psql
176
+ ```
177
+
124
178
  ### Overriding paths
125
179
 
126
- All commands accept `--input` and `--output` flags:
180
+ `schema`, `data`, and `sync` commands accept `--input` and `--output` flags:
127
181
 
128
182
  ```bash
129
183
  supabee schema split --input path/to/schema.sql --output path/to/split
130
- supabee data split --input path/to/data.sql --output path/to/split --backup
184
+ supabee schema split --input path/to/schema.sql --output path/to/split --backup
185
+ supabee data split --input path/to/data.sql --output path/to/split
186
+ supabee data split --input path/to/data.sql --output path/to/split --no-backup
131
187
  ```
132
188
 
133
- Use `--backup` to save the existing split directory before overwriting.
189
+ By default, split operations replace existing output in-place (while preserving configured `keepFiles`) without creating a backup folder.
190
+ Use `--backup` to keep a timestamped backup before replacement.
134
191
 
135
192
  ## Configuration
136
193
 
@@ -150,12 +207,14 @@ Legacy support: `supabase-splitter.config.json` is still recognized, but `supabe
150
207
  "input": "supabase/schemas/prod-schemas.sql",
151
208
  "output": "supabase/schemas/split",
152
209
  "reconstructed": "supabase/schemas/reconstructed-schemas.sql",
210
+ "backup": false,
153
211
  "keepFiles": []
154
212
  },
155
213
  "data": {
156
214
  "input": "supabase/seeds/prod-data.sql",
157
215
  "output": "supabase/seeds/split",
158
216
  "reconstructed": "supabase/seeds/reconstructed-data.sql",
217
+ "backup": false,
159
218
  "maxLinesPerFile": 2000,
160
219
  "maxStatementsPerFile": 20,
161
220
  "maxRowsPerInsert": 200,
@@ -174,10 +233,12 @@ Legacy support: `supabase-splitter.config.json` is still recognized, but `supabe
174
233
  | `schema.input` | Path to your schema dump file |
175
234
  | `schema.output` | Directory for split schema files |
176
235
  | `schema.reconstructed` | Path for the reconstructed schema (used in validation) |
177
- | `schema.keepFiles` | Files in the split dir to preserve across re-splits (restored from backup) |
236
+ | `schema.backup` | Whether split should create backup folder before replacing output (default: `false`) |
237
+ | `schema.keepFiles` | Files in the split dir to preserve across re-splits |
178
238
  | `data.input` | Path to your data dump file |
179
239
  | `data.output` | Directory for split data files |
180
240
  | `data.reconstructed` | Path for the reconstructed data (used in validation) |
241
+ | `data.backup` | Whether split should create backup folder before replacing output (default: `false`) |
181
242
  | `data.maxLinesPerFile` | Max lines per split file (default: 2000) |
182
243
  | `data.maxStatementsPerFile` | Max INSERT statements per file (default: 20) |
183
244
  | `data.maxRowsPerInsert` | Max rows per INSERT statement (default: 200) |
@@ -209,23 +270,70 @@ Override limits or skip specific tables:
209
270
 
210
271
  ## Flags
211
272
 
212
- Both `schema` and `data` support:
273
+ `schema`, `data`, `sync schema`, and `sync data` support:
213
274
 
214
275
  - `--input`: source SQL file
215
276
  - `--output`: output path (split dir for `split`, reconstructed file for `reconstruct`/`validate`)
216
- - `--backup`: backup dirty split directory before running split
277
+ - `--backup`: create backup of dirty split directory before running split
278
+ - `--no-backup`: disable backup of dirty split directory before running split
217
279
 
218
280
  For `validate`, you can pass reconstructed path either as `--output <path>` or as the second positional argument.
219
281
 
282
+ `db reset` supports:
283
+
284
+ - `--psql`: apply deferred migrations via `psql` instead of `supabase migration up`
285
+ - `--migrations-dir <path>`: override migrations directory (default `supabase/migrations`)
286
+ - `--temp-dir <path>`: override temporary defer directory (default `supabase/.tmp-migrations`)
287
+
288
+ `start` supports:
289
+
290
+ - `--psql`: apply deferred migrations via `psql` instead of `supabase migration up`
291
+ - `--migrations-dir <path>`: override migrations directory (default `supabase/migrations`)
292
+ - `--temp-dir <path>`: override temporary defer directory (default `supabase/.tmp-migrations`)
293
+
294
+ ## Why `supabee db reset` and `supabee start`
295
+
296
+ These commands matter most when local replay order diverges from how production data actually evolved:
297
+
298
+ 1. Seed files may be shaped for pre-migration schema.
299
+ 2. Some migrations intentionally mutate/seed production data for traceability (for example RBAC rows).
300
+ 3. Local `migrations -> seed` replay can fail even when production worked on already-populated data.
301
+
302
+ By deferring post-seed migrations and applying them after seed load, `supabee` better matches this production-style path.
303
+
304
+ ## Migration + Seed Duplication Caveat
305
+
306
+ If the same logical data mutation exists in both migration SQL and seed files, local replay can become order-dependent and brittle.
307
+
308
+ Typical symptoms:
309
+ - enum/value already exists errors,
310
+ - duplicate key or constraint violations,
311
+ - reset/start-only failures that don’t appear on incremental production deploys.
312
+
313
+ Recommended approach:
314
+
315
+ 1. Keep schema structure changes in migrations.
316
+ 2. Keep baseline/reference seed rows in seed files.
317
+ 3. Make migration-time data mutations idempotent (`IF NOT EXISTS`, `ON CONFLICT DO NOTHING`, guarded updates).
318
+ 4. Avoid duplicating the exact same inserts/enum mutations in both seeds and migrations unless both paths are explicitly idempotent.
319
+
220
320
  ## Help
221
321
 
222
322
  ```bash
223
323
  supabee --help
224
324
  supabee init --help
325
+ supabee sync --help
326
+ supabee sync schema --help
327
+ supabee sync data --help
225
328
  supabee schema --help
226
329
  supabee data --help
330
+ supabee start --help
331
+ supabee db --help
332
+ supabee db reset --help
227
333
  ```
228
334
 
335
+ Legacy CLI alias is still available: `supabase-splitter --help`.
336
+
229
337
  ## Development
230
338
 
231
339
  ```bash
@@ -242,7 +242,8 @@ function splitData(config) {
242
242
  console.log(info(`Created ${sequenceFile} with ${parsed.sequenceLines.length} sequence statements`));
243
243
  }
244
244
  const createdFiles = fs.readdirSync(config.outputDir).filter((file) => file.endsWith('.sql')).length;
245
- console.log(ok(`Data split completed. ${createdFiles} files created in ${config.outputDir}.`));
245
+ console.log(info(`Created files: ${createdFiles}`));
246
+ console.log(ok(`Data split completed. Output: ${config.outputDir}`));
246
247
  }
247
248
  function toRegexPattern(pattern) {
248
249
  const escaped = pattern.replace(/[.+^${}()|[\]\\]/g, '\\$&').replace(/\*/g, '.*');
@@ -357,7 +358,8 @@ export async function runDataCommand(args) {
357
358
  },
358
359
  actions: {
359
360
  split: async ({ config, options }) => {
360
- await prepareSplitOutputDir(config.outputDir, options.backup, 'Data', { keepFiles: config.keepFiles });
361
+ const shouldBackup = options.backup ?? config.backupByDefault;
362
+ await prepareSplitOutputDir(config.outputDir, shouldBackup, 'Data', { keepFiles: config.keepFiles });
361
363
  splitData(config);
362
364
  },
363
365
  reconstruct: async ({ config }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/commands/data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/commands/data.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export type PostSeedCommandOptions = {
2
+ psql?: boolean;
3
+ migrationsDir?: string;
4
+ tempDir?: string;
5
+ };
6
+ export declare function runDbResetCommand(cutoffTimestampRaw: string | undefined, options?: PostSeedCommandOptions): Promise<void>;
7
+ export declare function runStartCommand(cutoffTimestampRaw: string | undefined, options?: PostSeedCommandOptions): Promise<void>;
@@ -0,0 +1,211 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import { runCommand, runCommandCapture } from '../lib/subprocess.js';
4
+ import { sectionWithNote, title, info, ok } from '../lib/ui.js';
5
+ const DEFAULT_MIGRATIONS_DIR = 'supabase/migrations';
6
+ const DEFAULT_TEMP_DIR = 'supabase/.tmp-migrations';
7
+ function parseCutoffTimestamp(raw) {
8
+ if (!/^\d+$/.test(raw)) {
9
+ throw new Error(`Invalid cutoff timestamp "${raw}". Expected numeric format like 20260309180959.`);
10
+ }
11
+ const parsed = Number(raw);
12
+ if (!Number.isFinite(parsed)) {
13
+ throw new Error(`Invalid cutoff timestamp "${raw}".`);
14
+ }
15
+ return parsed;
16
+ }
17
+ function isValidMigrationVersion(raw) {
18
+ return /^\d+$/.test(raw.trim());
19
+ }
20
+ function parseMigrationListOutput(output) {
21
+ const rows = [];
22
+ const lines = output.split('\n');
23
+ for (const rawLine of lines) {
24
+ const line = rawLine.trimEnd();
25
+ if (!line.includes('|'))
26
+ continue;
27
+ if (line.includes('Local') && line.includes('Remote'))
28
+ continue;
29
+ if (line.match(/^-+\|-+\|-+$/))
30
+ continue;
31
+ const parts = line.split('|').map((part) => part.trim());
32
+ if (parts.length < 3)
33
+ continue;
34
+ if (/^-+$/.test(parts[0]) && /^-+$/.test(parts[1]))
35
+ continue;
36
+ const local = parts[0];
37
+ const remote = parts[1];
38
+ const timeUtc = parts[2];
39
+ if (!local && !remote)
40
+ continue;
41
+ rows.push({ local, remote, timeUtc });
42
+ }
43
+ return rows;
44
+ }
45
+ async function detectCutoffFromLinkedProject() {
46
+ const { stdout } = await runCommandCapture('supabase', ['migration', 'list', '--linked']);
47
+ const rows = parseMigrationListOutput(stdout);
48
+ if (rows.length === 0) {
49
+ throw new Error('Could not read migration list from linked project. Provide cutoff timestamp explicitly or run `supabase link` first.');
50
+ }
51
+ let latestAligned = null;
52
+ for (const row of rows) {
53
+ const local = row.local;
54
+ const remote = row.remote;
55
+ const isAligned = isValidMigrationVersion(local) && isValidMigrationVersion(remote) && local === remote;
56
+ if (isAligned) {
57
+ latestAligned = local;
58
+ continue;
59
+ }
60
+ break;
61
+ }
62
+ if (!latestAligned) {
63
+ throw new Error('No aligned local/remote migration version found. Provide cutoff timestamp explicitly (e.g. `supabee db reset 20260309180959`).');
64
+ }
65
+ return latestAligned;
66
+ }
67
+ async function listMigrations(migrationsDir) {
68
+ const entries = await fs.promises.readdir(migrationsDir, { withFileTypes: true });
69
+ const files = [];
70
+ for (const entry of entries) {
71
+ if (!entry.isFile() || !entry.name.endsWith('.sql'))
72
+ continue;
73
+ const timestampPart = entry.name.split('_')[0];
74
+ if (!/^\d+$/.test(timestampPart))
75
+ continue;
76
+ files.push({
77
+ fileName: entry.name,
78
+ timestamp: Number(timestampPart),
79
+ });
80
+ }
81
+ files.sort((a, b) => {
82
+ if (a.timestamp !== b.timestamp)
83
+ return a.timestamp - b.timestamp;
84
+ return a.fileName.localeCompare(b.fileName);
85
+ });
86
+ return files;
87
+ }
88
+ async function moveFiles(fileNames, fromDir, toDir) {
89
+ await fs.promises.mkdir(toDir, { recursive: true });
90
+ for (const fileName of fileNames) {
91
+ await fs.promises.rename(path.join(fromDir, fileName), path.join(toDir, fileName));
92
+ }
93
+ }
94
+ async function removeIfEmpty(dirPath) {
95
+ try {
96
+ const entries = await fs.promises.readdir(dirPath);
97
+ if (entries.length === 0) {
98
+ await fs.promises.rmdir(dirPath);
99
+ }
100
+ }
101
+ catch {
102
+ // ignore cleanup errors
103
+ }
104
+ }
105
+ async function ensureDirectoryExists(dirPath) {
106
+ const stats = await fs.promises.stat(dirPath).catch(() => null);
107
+ if (!stats || !stats.isDirectory()) {
108
+ throw new Error(`Migrations directory not found: ${dirPath}`);
109
+ }
110
+ }
111
+ function modeDisplayName(mode) {
112
+ return mode === 'reset' ? 'DB reset' : 'Start';
113
+ }
114
+ function modeCommandLabel(mode) {
115
+ return mode === 'reset' ? 'supabase db reset' : 'supabase start';
116
+ }
117
+ async function runPostSeedCommand(mode, cutoffTimestampRaw, options = {}) {
118
+ let resolvedCutoffRaw = cutoffTimestampRaw;
119
+ if (!resolvedCutoffRaw) {
120
+ try {
121
+ resolvedCutoffRaw = await detectCutoffFromLinkedProject();
122
+ }
123
+ catch (error) {
124
+ const message = error instanceof Error ? error.message : String(error);
125
+ throw new Error(`Could not auto-detect cutoff from linked project. Run \`supabase link\` first or provide cutoff explicitly.\n${message}`);
126
+ }
127
+ }
128
+ const cutoff = parseCutoffTimestamp(resolvedCutoffRaw);
129
+ const migrationsDir = path.resolve(process.cwd(), options.migrationsDir ?? DEFAULT_MIGRATIONS_DIR);
130
+ const tempRootDir = path.resolve(process.cwd(), options.tempDir ?? DEFAULT_TEMP_DIR);
131
+ const activeTempDir = path.join(tempRootDir, `deferred_${Date.now()}_${process.pid}`);
132
+ const usePsql = options.psql === true;
133
+ await ensureDirectoryExists(migrationsDir);
134
+ console.log(sectionWithNote(title(modeDisplayName(mode)), `Defers post-seed migrations, runs ${modeCommandLabel(mode)}, restores files, then reapplies deferred migrations.`));
135
+ console.log(info(`cutoff = ${resolvedCutoffRaw}${cutoffTimestampRaw ? '' : ' (auto-detected from linked project)'}`));
136
+ console.log(info(`migrationsDir = ${migrationsDir}`));
137
+ console.log(info(`tempDir = ${activeTempDir}`));
138
+ console.log(info(`applyMode = ${usePsql ? 'psql' : 'supabase migration up'}`));
139
+ console.log('');
140
+ const allMigrations = await listMigrations(migrationsDir);
141
+ const deferred = allMigrations.filter((migration) => migration.timestamp > cutoff);
142
+ const deferredNames = deferred.map((migration) => migration.fileName);
143
+ if (deferredNames.length > 0) {
144
+ console.log(info(`Deferring ${deferredNames.length} migrations after ${resolvedCutoffRaw}:`));
145
+ for (const fileName of deferredNames) {
146
+ console.log(info(` ${fileName}`));
147
+ }
148
+ }
149
+ else {
150
+ console.log(info(`No migrations found after ${resolvedCutoffRaw}.`));
151
+ }
152
+ console.log('');
153
+ let baseCommandError = null;
154
+ let restoreError = null;
155
+ if (deferredNames.length > 0) {
156
+ await moveFiles(deferredNames, migrationsDir, activeTempDir);
157
+ console.log(ok(`Moved ${deferredNames.length} migrations to ${activeTempDir}`));
158
+ console.log('');
159
+ }
160
+ try {
161
+ console.log(info(`Running ${modeCommandLabel(mode)}...`));
162
+ await runCommand('supabase', mode === 'reset' ? ['db', 'reset'] : ['start']);
163
+ console.log(ok(`${modeCommandLabel(mode)} completed.`));
164
+ }
165
+ catch (error) {
166
+ baseCommandError = error;
167
+ }
168
+ finally {
169
+ if (deferredNames.length > 0) {
170
+ try {
171
+ await moveFiles(deferredNames, activeTempDir, migrationsDir);
172
+ await removeIfEmpty(activeTempDir);
173
+ await removeIfEmpty(tempRootDir);
174
+ console.log(ok(`Restored deferred migrations to ${migrationsDir}`));
175
+ }
176
+ catch (error) {
177
+ restoreError = error;
178
+ }
179
+ }
180
+ }
181
+ if (restoreError) {
182
+ throw new Error(`Failed while restoring deferred migrations: ${restoreError instanceof Error ? restoreError.message : String(restoreError)}`);
183
+ }
184
+ if (baseCommandError) {
185
+ throw baseCommandError;
186
+ }
187
+ if (deferredNames.length === 0) {
188
+ console.log(ok('Done. No post-seed migrations to apply.'));
189
+ return;
190
+ }
191
+ if (usePsql) {
192
+ console.log(info('Applying deferred migrations via psql...'));
193
+ for (const fileName of deferredNames) {
194
+ const migrationPath = path.join(migrationsDir, fileName);
195
+ console.log(info(` ${fileName}`));
196
+ await runCommand('psql', ['-h', '127.0.0.1', '-p', '6543', '-U', 'postgres', '-d', 'postgres', '-f', migrationPath, '-v', 'ON_ERROR_STOP=1'], { env: { PGPASSWORD: 'postgres' } });
197
+ }
198
+ }
199
+ else {
200
+ console.log(info('Applying deferred migrations via supabase migration up...'));
201
+ await runCommand('supabase', ['migration', 'up']);
202
+ }
203
+ console.log(ok(`Done. Applied ${deferredNames.length} post-seed migrations.`));
204
+ }
205
+ export async function runDbResetCommand(cutoffTimestampRaw, options = {}) {
206
+ await runPostSeedCommand('reset', cutoffTimestampRaw, options);
207
+ }
208
+ export async function runStartCommand(cutoffTimestampRaw, options = {}) {
209
+ await runPostSeedCommand('start', cutoffTimestampRaw, options);
210
+ }
211
+ //# sourceMappingURL=db-reset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-reset.js","sourceRoot":"","sources":["../../src/commands/db-reset.ts"],"names":[],"mappings":"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"}