@prisma-next/cli 0.5.0-dev.9 → 0.5.0
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 +60 -25
- package/dist/cli-errors-B9OBbled.d.mts +3 -0
- package/dist/cli-errors-D3_sMh2K.mjs +33 -0
- package/dist/cli-errors-D3_sMh2K.mjs.map +1 -0
- package/dist/cli.mjs +16 -78
- package/dist/cli.mjs.map +1 -1
- package/dist/client-qVH-rEgd.mjs +1595 -0
- package/dist/client-qVH-rEgd.mjs.map +1 -0
- package/dist/{result-handler-Ba3zWQsI.mjs → command-helpers-BeZHkxV8.mjs} +70 -47
- package/dist/command-helpers-BeZHkxV8.mjs.map +1 -0
- package/dist/commands/contract-emit.d.mts.map +1 -1
- package/dist/commands/contract-emit.mjs +2 -4
- package/dist/commands/contract-infer.d.mts.map +1 -1
- package/dist/commands/contract-infer.mjs +2 -4
- package/dist/commands/db-init.d.mts.map +1 -1
- package/dist/commands/db-init.mjs +16 -13
- package/dist/commands/db-init.mjs.map +1 -1
- package/dist/commands/db-schema.d.mts.map +1 -1
- package/dist/commands/db-schema.mjs +6 -7
- package/dist/commands/db-schema.mjs.map +1 -1
- package/dist/commands/db-sign.d.mts.map +1 -1
- package/dist/commands/db-sign.mjs +9 -9
- package/dist/commands/db-sign.mjs.map +1 -1
- package/dist/commands/db-update.d.mts.map +1 -1
- package/dist/commands/db-update.mjs +15 -13
- package/dist/commands/db-update.mjs.map +1 -1
- package/dist/commands/db-verify.d.mts.map +1 -1
- package/dist/commands/db-verify.mjs +1 -321
- package/dist/commands/migration-apply.d.mts +28 -13
- package/dist/commands/migration-apply.d.mts.map +1 -1
- package/dist/commands/migration-apply.mjs +55 -151
- package/dist/commands/migration-apply.mjs.map +1 -1
- package/dist/commands/migration-new.d.mts +0 -1
- package/dist/commands/migration-new.d.mts.map +1 -1
- package/dist/commands/migration-new.mjs +34 -40
- package/dist/commands/migration-new.mjs.map +1 -1
- package/dist/commands/migration-plan.d.mts +33 -6
- package/dist/commands/migration-plan.d.mts.map +1 -1
- package/dist/commands/migration-plan.mjs +2 -348
- package/dist/commands/migration-ref.d.mts +1 -1
- package/dist/commands/migration-ref.d.mts.map +1 -1
- package/dist/commands/migration-ref.mjs +8 -12
- package/dist/commands/migration-ref.mjs.map +1 -1
- package/dist/commands/migration-show.d.mts +13 -7
- package/dist/commands/migration-show.d.mts.map +1 -1
- package/dist/commands/migration-show.mjs +35 -36
- package/dist/commands/migration-show.mjs.map +1 -1
- package/dist/commands/migration-status.d.mts +126 -5
- package/dist/commands/migration-status.d.mts.map +1 -1
- package/dist/commands/migration-status.mjs +2 -4
- package/dist/{config-loader-C25b63rJ.mjs → config-loader-B6sJjXTv.mjs} +3 -5
- package/dist/config-loader-B6sJjXTv.mjs.map +1 -0
- package/dist/config-loader.d.mts +0 -1
- package/dist/config-loader.d.mts.map +1 -1
- package/dist/config-loader.mjs +2 -3
- package/dist/contract-emit-9DBda5Ou.mjs +150 -0
- package/dist/contract-emit-9DBda5Ou.mjs.map +1 -0
- package/dist/contract-emit-B77TsJqf.mjs +327 -0
- package/dist/contract-emit-B77TsJqf.mjs.map +1 -0
- package/dist/{contract-enrichment-CAOELa-H.mjs → contract-enrichment-Dani0mMW.mjs} +4 -6
- package/dist/contract-enrichment-Dani0mMW.mjs.map +1 -0
- package/dist/{contract-infer-D9cC3rJm.mjs → contract-infer-BK9YFGEG.mjs} +13 -22
- package/dist/contract-infer-BK9YFGEG.mjs.map +1 -0
- package/dist/db-verify-C0y1PCO2.mjs +404 -0
- package/dist/db-verify-C0y1PCO2.mjs.map +1 -0
- package/dist/exports/config-types.mjs +1 -2
- package/dist/exports/control-api.d.mts +101 -586
- package/dist/exports/control-api.d.mts.map +1 -1
- package/dist/exports/control-api.mjs +4 -6
- package/dist/exports/index.d.mts.map +1 -1
- package/dist/exports/index.mjs +28 -30
- package/dist/exports/index.mjs.map +1 -1
- package/dist/exports/init-output.d.mts +2 -4
- package/dist/exports/init-output.d.mts.map +1 -1
- package/dist/exports/init-output.mjs +2 -3
- package/dist/extension-pack-inputs-C7xgE-vv.mjs +74 -0
- package/dist/extension-pack-inputs-C7xgE-vv.mjs.map +1 -0
- package/dist/{framework-components-Cr--XBKy.mjs → framework-components-ChqVUxR-.mjs} +3 -4
- package/dist/{framework-components-Cr--XBKy.mjs.map → framework-components-ChqVUxR-.mjs.map} +1 -1
- package/dist/global-flags-Icqpxk23.d.mts +12 -0
- package/dist/global-flags-Icqpxk23.d.mts.map +1 -0
- package/dist/helpers-eqdN8tH6.mjs +25 -0
- package/dist/helpers-eqdN8tH6.mjs.map +1 -0
- package/dist/{init-C5220SY9.mjs → init-DETSgw3h.mjs} +40 -49
- package/dist/init-DETSgw3h.mjs.map +1 -0
- package/dist/{inspect-live-schema-yrHAvG71.mjs → inspect-live-schema-CWYxGKlb.mjs} +10 -11
- package/dist/inspect-live-schema-CWYxGKlb.mjs.map +1 -0
- package/dist/migration-cli.d.mts +41 -12
- package/dist/migration-cli.d.mts.map +1 -1
- package/dist/migration-cli.mjs +309 -86
- package/dist/migration-cli.mjs.map +1 -1
- package/dist/{migration-command-scaffold-B3B09et6.mjs → migration-command-scaffold-B5dORFEv.mjs} +8 -9
- package/dist/migration-command-scaffold-B5dORFEv.mjs.map +1 -0
- package/dist/migration-plan-C6lVaHsO.mjs +554 -0
- package/dist/migration-plan-C6lVaHsO.mjs.map +1 -0
- package/dist/{migration-status-DUMiH8_G.mjs → migration-status-CZ-D5k7k.mjs} +272 -65
- package/dist/migration-status-CZ-D5k7k.mjs.map +1 -0
- package/dist/migrations-D_UJnpuW.mjs +216 -0
- package/dist/migrations-D_UJnpuW.mjs.map +1 -0
- package/dist/{output-BpcQrnnq.mjs → output-B16Kefzx.mjs} +9 -3
- package/dist/output-B16Kefzx.mjs.map +1 -0
- package/dist/{progress-adapter-DvQWB1nK.mjs → progress-adapter-DFfvZcYL.mjs} +2 -2
- package/dist/{progress-adapter-DvQWB1nK.mjs.map → progress-adapter-DFfvZcYL.mjs.map} +1 -1
- package/dist/result-handler-rmPVKIP2.mjs +25 -0
- package/dist/result-handler-rmPVKIP2.mjs.map +1 -0
- package/dist/rolldown-runtime-twds-ZHy.mjs +14 -0
- package/dist/{terminal-ui-C3ZLwQxK.mjs → terminal-ui-C_hFNbAn.mjs} +4 -28
- package/dist/terminal-ui-C_hFNbAn.mjs.map +1 -0
- package/dist/types-D7x-IFLO.d.mts +858 -0
- package/dist/types-D7x-IFLO.d.mts.map +1 -0
- package/dist/{verify-Bkycc-Tf.mjs → verify-CiwNWM9N.mjs} +3 -4
- package/dist/verify-CiwNWM9N.mjs.map +1 -0
- package/package.json +28 -26
- package/src/cli.ts +32 -6
- package/src/commands/contract-emit.ts +67 -163
- package/src/commands/contract-infer.ts +7 -20
- package/src/commands/db-init.ts +15 -3
- package/src/commands/db-update.ts +9 -4
- package/src/commands/db-verify.ts +47 -15
- package/src/commands/init/index.ts +1 -1
- package/src/commands/init/init.ts +2 -2
- package/src/commands/init/templates/code-templates.ts +26 -18
- package/src/commands/inspect-live-schema.ts +10 -5
- package/src/commands/migration-apply.ts +114 -212
- package/src/commands/migration-new.ts +42 -45
- package/src/commands/migration-plan.ts +212 -72
- package/src/commands/migration-ref.ts +8 -7
- package/src/commands/migration-show.ts +60 -41
- package/src/commands/migration-status.ts +483 -64
- package/src/config-path-validation.ts +0 -1
- package/src/control-api/client.ts +85 -5
- package/src/control-api/contract-enrichment.ts +6 -4
- package/src/control-api/operations/apply-aggregate.ts +290 -0
- package/src/control-api/operations/contract-emit.ts +198 -115
- package/src/control-api/operations/db-apply-aggregate.ts +397 -0
- package/src/control-api/operations/db-init.ts +51 -253
- package/src/control-api/operations/db-update.ts +66 -183
- package/src/control-api/operations/db-verify.ts +342 -0
- package/src/control-api/operations/migration-apply.ts +424 -131
- package/src/control-api/types.ts +280 -29
- package/src/exports/control-api.ts +15 -3
- package/src/load-ts-contract.ts +28 -26
- package/src/migration-cli.ts +445 -122
- package/src/utils/cli-errors.ts +49 -2
- package/src/utils/combine-schema-results.ts +84 -0
- package/src/utils/command-helpers.ts +69 -25
- package/src/utils/contract-space-aggregate-loader.ts +204 -0
- package/src/utils/contract-space-extension-migrations-pass.ts +120 -0
- package/src/utils/contract-space-migrate-pass.ts +156 -0
- package/src/utils/emit-queue.ts +26 -0
- package/src/utils/extension-pack-inputs.ts +170 -0
- package/src/utils/formatters/graph-migration-mapper.ts +7 -3
- package/src/utils/formatters/migrations.ts +197 -61
- package/src/utils/publish-contract-artifact-pair.ts +134 -0
- package/dist/cli-errors-BFYgBH3L.d.mts +0 -4
- package/dist/cli-errors-Cd79vmTH.mjs +0 -5
- package/dist/client-CrsnY58k.mjs +0 -997
- package/dist/client-CrsnY58k.mjs.map +0 -1
- package/dist/commands/db-verify.mjs.map +0 -1
- package/dist/commands/migration-plan.mjs.map +0 -1
- package/dist/config-loader-C25b63rJ.mjs.map +0 -1
- package/dist/contract-emit--feXyNd7.mjs +0 -4
- package/dist/contract-emit-NJ01hiiv.mjs +0 -195
- package/dist/contract-emit-NJ01hiiv.mjs.map +0 -1
- package/dist/contract-emit-V5SSitUT.mjs +0 -122
- package/dist/contract-emit-V5SSitUT.mjs.map +0 -1
- package/dist/contract-enrichment-CAOELa-H.mjs.map +0 -1
- package/dist/contract-infer-D9cC3rJm.mjs.map +0 -1
- package/dist/extract-operation-statements-DsFfxXVZ.mjs +0 -13
- package/dist/extract-operation-statements-DsFfxXVZ.mjs.map +0 -1
- package/dist/extract-sql-ddl-D9UbZDyz.mjs +0 -26
- package/dist/extract-sql-ddl-D9UbZDyz.mjs.map +0 -1
- package/dist/init-C5220SY9.mjs.map +0 -1
- package/dist/inspect-live-schema-yrHAvG71.mjs.map +0 -1
- package/dist/migration-command-scaffold-B3B09et6.mjs.map +0 -1
- package/dist/migration-status-DUMiH8_G.mjs.map +0 -1
- package/dist/migrations-Bo5WtTla.mjs +0 -153
- package/dist/migrations-Bo5WtTla.mjs.map +0 -1
- package/dist/output-BpcQrnnq.mjs.map +0 -1
- package/dist/result-handler-Ba3zWQsI.mjs.map +0 -1
- package/dist/terminal-ui-C3ZLwQxK.mjs.map +0 -1
- package/dist/validate-contract-deps-B_Cs29TL.mjs +0 -37
- package/dist/validate-contract-deps-B_Cs29TL.mjs.map +0 -1
- package/dist/verify-Bkycc-Tf.mjs.map +0 -1
- package/src/control-api/operations/extract-operation-statements.ts +0 -14
- package/src/control-api/operations/extract-sql-ddl.ts +0 -47
|
@@ -1,14 +1,26 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
1
|
+
import type {
|
|
2
|
+
MigrationPlanOperation,
|
|
3
|
+
OperationPreview,
|
|
4
|
+
} from '@prisma-next/framework-components/control';
|
|
5
|
+
import { MigrationToolsError } from '@prisma-next/migration-tools/errors';
|
|
3
6
|
import { readMigrationPackage, readMigrationsDir } from '@prisma-next/migration-tools/io';
|
|
4
|
-
import
|
|
5
|
-
|
|
7
|
+
import {
|
|
8
|
+
findLatestMigration,
|
|
9
|
+
reconstructGraph,
|
|
10
|
+
} from '@prisma-next/migration-tools/migration-graph';
|
|
11
|
+
import type { OnDiskMigrationPackage } from '@prisma-next/migration-tools/package';
|
|
12
|
+
import { APP_SPACE_ID, spaceMigrationDirectory } from '@prisma-next/migration-tools/spaces';
|
|
6
13
|
import { notOk, ok, type Result } from '@prisma-next/utils/result';
|
|
7
14
|
import { Command } from 'commander';
|
|
8
15
|
import { relative, resolve } from 'pathe';
|
|
9
16
|
import { loadConfig } from '../config-loader';
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
17
|
+
import { createControlClient } from '../control-api/client';
|
|
18
|
+
import {
|
|
19
|
+
type CliStructuredError,
|
|
20
|
+
errorRuntime,
|
|
21
|
+
errorUnexpected,
|
|
22
|
+
mapMigrationToolsError,
|
|
23
|
+
} from '../utils/cli-errors';
|
|
12
24
|
import {
|
|
13
25
|
addGlobalOptions,
|
|
14
26
|
setCommandDescriptions,
|
|
@@ -29,17 +41,22 @@ export interface MigrationShowResult {
|
|
|
29
41
|
readonly ok: true;
|
|
30
42
|
readonly dirName: string;
|
|
31
43
|
readonly dirPath: string;
|
|
32
|
-
readonly from: string;
|
|
44
|
+
readonly from: string | null;
|
|
33
45
|
readonly to: string;
|
|
34
|
-
readonly
|
|
35
|
-
readonly kind: string;
|
|
46
|
+
readonly migrationHash: string;
|
|
36
47
|
readonly createdAt: string;
|
|
37
48
|
readonly operations: readonly {
|
|
38
49
|
readonly id: string;
|
|
39
50
|
readonly label: string;
|
|
40
51
|
readonly operationClass: string;
|
|
41
52
|
}[];
|
|
42
|
-
|
|
53
|
+
/**
|
|
54
|
+
* Family-agnostic textual preview of the migration's operations. Replaces
|
|
55
|
+
* the previous string-array DDL field. Always defined; statements is empty
|
|
56
|
+
* for a no-op migration or a family that does not implement the
|
|
57
|
+
* `OperationPreviewCapable` capability.
|
|
58
|
+
*/
|
|
59
|
+
readonly preview: OperationPreview;
|
|
43
60
|
readonly summary: string;
|
|
44
61
|
}
|
|
45
62
|
|
|
@@ -48,11 +65,11 @@ function looksLikePath(target: string): boolean {
|
|
|
48
65
|
}
|
|
49
66
|
|
|
50
67
|
export function resolveByHashPrefix(
|
|
51
|
-
packages: readonly
|
|
68
|
+
packages: readonly OnDiskMigrationPackage[],
|
|
52
69
|
prefix: string,
|
|
53
|
-
): Result<
|
|
70
|
+
): Result<OnDiskMigrationPackage, CliStructuredError> {
|
|
54
71
|
const normalizedPrefix = prefix.startsWith('sha256:') ? prefix : `sha256:${prefix}`;
|
|
55
|
-
const matches = packages.filter((p) => p.
|
|
72
|
+
const matches = packages.filter((p) => p.metadata.migrationHash.startsWith(normalizedPrefix));
|
|
56
73
|
|
|
57
74
|
if (matches.length === 1) {
|
|
58
75
|
return ok(matches[0]!);
|
|
@@ -61,13 +78,13 @@ export function resolveByHashPrefix(
|
|
|
61
78
|
if (matches.length === 0) {
|
|
62
79
|
return notOk(
|
|
63
80
|
errorRuntime('No migration found matching prefix', {
|
|
64
|
-
why: `No migration has a
|
|
81
|
+
why: `No migration has a migrationHash starting with "${normalizedPrefix}"`,
|
|
65
82
|
fix: 'Run `prisma-next migration show` (no argument) to see the latest migration, or check the migrations directory for available packages.',
|
|
66
83
|
}),
|
|
67
84
|
);
|
|
68
85
|
}
|
|
69
86
|
|
|
70
|
-
const candidates = matches.map((p) => ` ${p.dirName} ${p.
|
|
87
|
+
const candidates = matches.map((p) => ` ${p.dirName} ${p.metadata.migrationHash}`).join('\n');
|
|
71
88
|
return notOk(
|
|
72
89
|
errorRuntime('Ambiguous hash prefix', {
|
|
73
90
|
why: `Multiple migrations match prefix "${normalizedPrefix}":\n${candidates}`,
|
|
@@ -87,16 +104,17 @@ async function executeMigrationShowCommand(
|
|
|
87
104
|
? relative(process.cwd(), resolve(options.config))
|
|
88
105
|
: 'prisma-next.config.ts';
|
|
89
106
|
|
|
90
|
-
const
|
|
107
|
+
const migrationsDirRoot = resolve(
|
|
91
108
|
options.config ? resolve(options.config, '..') : process.cwd(),
|
|
92
109
|
config.migrations?.dir ?? 'migrations',
|
|
93
110
|
);
|
|
94
|
-
const
|
|
111
|
+
const appMigrationsDir = spaceMigrationDirectory(migrationsDirRoot, APP_SPACE_ID);
|
|
112
|
+
const appMigrationsRelative = relative(process.cwd(), appMigrationsDir);
|
|
95
113
|
|
|
96
114
|
if (!flags.json && !flags.quiet) {
|
|
97
115
|
const details: Array<{ label: string; value: string }> = [
|
|
98
116
|
{ label: 'config', value: configPath },
|
|
99
|
-
{ label: 'migrations', value:
|
|
117
|
+
{ label: 'migrations', value: appMigrationsRelative },
|
|
100
118
|
];
|
|
101
119
|
if (target) {
|
|
102
120
|
details.push({ label: 'target', value: target });
|
|
@@ -110,17 +128,17 @@ async function executeMigrationShowCommand(
|
|
|
110
128
|
ui.stderr(header);
|
|
111
129
|
}
|
|
112
130
|
|
|
113
|
-
let pkg:
|
|
131
|
+
let pkg: OnDiskMigrationPackage;
|
|
114
132
|
|
|
115
133
|
try {
|
|
116
134
|
if (target && looksLikePath(target)) {
|
|
117
135
|
pkg = await readMigrationPackage(resolve(target));
|
|
118
136
|
} else {
|
|
119
|
-
const allPackages = await readMigrationsDir(
|
|
137
|
+
const allPackages = await readMigrationsDir(appMigrationsDir);
|
|
120
138
|
if (allPackages.length === 0) {
|
|
121
139
|
return notOk(
|
|
122
140
|
errorRuntime('No migrations found', {
|
|
123
|
-
why: `No migration packages found in ${
|
|
141
|
+
why: `No migration packages found in ${appMigrationsRelative}`,
|
|
124
142
|
fix: 'Run `prisma-next migration plan` to create a migration first.',
|
|
125
143
|
}),
|
|
126
144
|
);
|
|
@@ -142,7 +160,7 @@ async function executeMigrationShowCommand(
|
|
|
142
160
|
);
|
|
143
161
|
}
|
|
144
162
|
const leafPkg = allPackages.find(
|
|
145
|
-
(p) => p.
|
|
163
|
+
(p) => p.metadata.migrationHash === latestMigration.migrationHash,
|
|
146
164
|
);
|
|
147
165
|
if (!leafPkg) {
|
|
148
166
|
return notOk(
|
|
@@ -157,13 +175,7 @@ async function executeMigrationShowCommand(
|
|
|
157
175
|
}
|
|
158
176
|
} catch (error) {
|
|
159
177
|
if (MigrationToolsError.is(error)) {
|
|
160
|
-
return notOk(
|
|
161
|
-
errorRuntime(error.message, {
|
|
162
|
-
why: error.why,
|
|
163
|
-
fix: error.fix,
|
|
164
|
-
meta: { code: error.code, ...(error.details ?? {}) },
|
|
165
|
-
}),
|
|
166
|
-
);
|
|
178
|
+
return notOk(mapMigrationToolsError(error));
|
|
167
179
|
}
|
|
168
180
|
return notOk(
|
|
169
181
|
errorUnexpected(error instanceof Error ? error.message : String(error), {
|
|
@@ -173,23 +185,33 @@ async function executeMigrationShowCommand(
|
|
|
173
185
|
}
|
|
174
186
|
|
|
175
187
|
const ops = pkg.ops as readonly MigrationPlanOperation[];
|
|
176
|
-
|
|
188
|
+
|
|
189
|
+
// `migration show` is an offline command; the control client is constructed
|
|
190
|
+
// purely to dispatch the family-specific `toOperationPreview` capability and
|
|
191
|
+
// is not connected to a database.
|
|
192
|
+
const client = createControlClient({
|
|
193
|
+
family: config.family,
|
|
194
|
+
target: config.target,
|
|
195
|
+
adapter: config.adapter,
|
|
196
|
+
...(config.driver ? { driver: config.driver } : {}),
|
|
197
|
+
extensionPacks: config.extensionPacks ?? [],
|
|
198
|
+
});
|
|
199
|
+
const preview: OperationPreview = client.toOperationPreview(ops) ?? { statements: [] };
|
|
177
200
|
|
|
178
201
|
const result: MigrationShowResult = {
|
|
179
202
|
ok: true,
|
|
180
203
|
dirName: pkg.dirName,
|
|
181
204
|
dirPath: relative(process.cwd(), pkg.dirPath),
|
|
182
|
-
from: pkg.
|
|
183
|
-
to: pkg.
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
createdAt: pkg.manifest.createdAt,
|
|
205
|
+
from: pkg.metadata.from,
|
|
206
|
+
to: pkg.metadata.to,
|
|
207
|
+
migrationHash: pkg.metadata.migrationHash,
|
|
208
|
+
createdAt: pkg.metadata.createdAt,
|
|
187
209
|
operations: ops.map((op) => ({
|
|
188
210
|
id: op.id,
|
|
189
211
|
label: op.label,
|
|
190
212
|
operationClass: op.operationClass,
|
|
191
213
|
})),
|
|
192
|
-
|
|
214
|
+
preview,
|
|
193
215
|
summary: `${ops.length} operation(s)`,
|
|
194
216
|
};
|
|
195
217
|
return ok(result);
|
|
@@ -200,7 +222,7 @@ export function createMigrationShowCommand(): Command {
|
|
|
200
222
|
setCommandDescriptions(
|
|
201
223
|
command,
|
|
202
224
|
'Display migration package contents',
|
|
203
|
-
'Shows the operations,
|
|
225
|
+
'Shows the operations, statement preview, and metadata for a migration package.\n' +
|
|
204
226
|
'Accepts a directory path, a hash prefix (git-style), or defaults to the\n' +
|
|
205
227
|
'latest migration.',
|
|
206
228
|
);
|
|
@@ -209,10 +231,7 @@ export function createMigrationShowCommand(): Command {
|
|
|
209
231
|
'prisma-next migration show sha256:a1b2c3',
|
|
210
232
|
]);
|
|
211
233
|
addGlobalOptions(command)
|
|
212
|
-
.argument(
|
|
213
|
-
'[target]',
|
|
214
|
-
'Migration directory path or migrationId hash prefix (defaults to latest)',
|
|
215
|
-
)
|
|
234
|
+
.argument('[target]', 'Migration directory path or migrationHash prefix (defaults to latest)')
|
|
216
235
|
.option('--config <path>', 'Path to prisma-next.config.ts')
|
|
217
236
|
.action(async (target: string | undefined, options: MigrationShowOptions) => {
|
|
218
237
|
const flags = parseGlobalFlags(options);
|