supabee 0.2.0 → 0.2.1
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 +129 -21
- package/dist/commands/data.js +4 -2
- package/dist/commands/data.js.map +1 -1
- package/dist/commands/db-reset.d.ts +7 -0
- package/dist/commands/db-reset.js +211 -0
- package/dist/commands/db-reset.js.map +1 -0
- package/dist/commands/schema.js +31 -8
- package/dist/commands/schema.js.map +1 -1
- package/dist/commands/sync.d.ts +7 -0
- package/dist/commands/sync.js +39 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/index.js +106 -14
- package/dist/index.js.map +1 -1
- package/dist/lib/command-contract.d.ts +1 -1
- package/dist/lib/command-contract.js +6 -2
- package/dist/lib/command-contract.js.map +1 -1
- package/dist/lib/config.d.ts +2 -0
- package/dist/lib/config.js +5 -0
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/constants.d.ts +4 -0
- package/dist/lib/constants.js +2 -0
- package/dist/lib/constants.js.map +1 -1
- package/dist/lib/output.js +36 -7
- package/dist/lib/output.js.map +1 -1
- package/dist/lib/subprocess.d.ts +12 -0
- package/dist/lib/subprocess.js +74 -0
- package/dist/lib/subprocess.js.map +1 -0
- package/package.json +1 -1
- package/supabee.config.example.json +2 -0
- package/supabase-splitter.config.example.json +0 -29
package/README.md
CHANGED
|
@@ -4,18 +4,20 @@
|
|
|
4
4
|
[](https://www.npmjs.com/package/supabee)
|
|
5
5
|
[](./LICENSE)
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Orchestrate post-seed migrations safely and split schema/data SQL into organized files.
|
|
8
8
|
|
|
9
9
|
## Why?
|
|
10
10
|
|
|
11
|
-
When
|
|
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`
|
|
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.
|
|
55
|
+
### 3. Run the primary workflows
|
|
54
56
|
|
|
55
57
|
```bash
|
|
56
|
-
|
|
57
|
-
|
|
58
|
+
supabee sync schema
|
|
59
|
+
supabee sync data
|
|
60
|
+
supabee db reset [cutoff_timestamp]
|
|
61
|
+
supabee start [cutoff_timestamp]
|
|
58
62
|
```
|
|
59
63
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
```bash
|
|
63
|
-
supabee schema
|
|
64
|
-
supabee data
|
|
65
|
-
```
|
|
64
|
+
`sync` commands run end-to-end:
|
|
66
65
|
|
|
67
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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
|
package/dist/commands/data.js
CHANGED
|
@@ -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(
|
|
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
|
-
|
|
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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"}
|