@prisma/migrate 6.19.0-integration-next.4 → 6.19.0-integration-engines-6-19-0-1-push-qtpkxwkvolmz-389b05cecb76e4e93db0ae07c19800226f238242.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.
Files changed (40) hide show
  1. package/dist/Migrate.js +3 -3
  2. package/dist/bin.js +27 -26
  3. package/dist/{chunk-AVDCAVMB.js → chunk-3AKRTEIK.js} +7 -7
  4. package/dist/{chunk-I2VUHLTD.js → chunk-6ORQRJLP.js} +45 -14
  5. package/dist/{chunk-RF72HHCJ.js → chunk-7TVX3D4W.js} +6 -6
  6. package/dist/{chunk-TVLHBYPV.js → chunk-BHJMJSM4.js} +6 -6
  7. package/dist/{chunk-W2NKGYXF.js → chunk-D4TRX77Y.js} +9 -7
  8. package/dist/{chunk-RMMTCJSW.js → chunk-D6LYHB65.js} +4 -4
  9. package/dist/{chunk-F4ENFSD2.js → chunk-F2XCBEZ4.js} +11 -9
  10. package/dist/{chunk-NX7CVZ33.js → chunk-J33EXHZB.js} +11 -9
  11. package/dist/{chunk-ZBQSD3YW.js → chunk-NB4FRYRQ.js} +5 -5
  12. package/dist/{chunk-EDBWBKKM.js → chunk-O35BTK6Y.js} +5 -5
  13. package/dist/{chunk-L7EZFBB4.js → chunk-PHXLQVPT.js} +68 -40
  14. package/dist/{chunk-YB32XZV6.js → chunk-R4IWP35Z.js} +6 -6
  15. package/dist/chunk-RR6BKMNO.js +80 -0
  16. package/dist/{chunk-TIVQQZRQ.js → chunk-TW22Y3AA.js} +6 -6
  17. package/dist/{chunk-43R3GFIU.js → chunk-Z27SI4AV.js} +4 -4
  18. package/dist/{chunk-55CU3CV4.js → chunk-ZTIS675B.js} +42 -7
  19. package/dist/commands/DbDrop.js +2 -2
  20. package/dist/commands/DbExecute.js +4 -4
  21. package/dist/commands/DbPull.js +5 -4
  22. package/dist/commands/DbPush.js +4 -4
  23. package/dist/commands/DbSeed.js +3 -3
  24. package/dist/commands/MigrateDeploy.js +4 -4
  25. package/dist/commands/MigrateDev.js +5 -5
  26. package/dist/commands/MigrateDiff.js +4 -4
  27. package/dist/commands/MigrateReset.js +5 -5
  28. package/dist/commands/MigrateResolve.js +4 -4
  29. package/dist/commands/MigrateStatus.js +4 -4
  30. package/dist/index.js +31 -30
  31. package/dist/internals/src/cli/getSchema.d.ts +15 -1
  32. package/dist/migrate/src/utils/replaceOrAddDatasource.d.ts +2 -0
  33. package/dist/migrate/src/utils/replaceOrAddDatasource.test.d.ts +1 -0
  34. package/dist/migrate/src/utils/seed.d.ts +6 -0
  35. package/dist/utils/getDatabaseVersionSafe.js +4 -4
  36. package/dist/utils/introspectSql.js +4 -4
  37. package/dist/utils/replaceOrAddDatasource.js +25 -0
  38. package/dist/utils/replaceOrAddDatasource.test.js +207 -0
  39. package/dist/utils/seed.js +3 -2
  40. package/package.json +11 -11
@@ -26,21 +26,24 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var chunk_L7EZFBB4_exports = {};
30
- __export(chunk_L7EZFBB4_exports, {
31
- executeSeedCommand: () => executeSeedCommand
29
+ var chunk_PHXLQVPT_exports = {};
30
+ __export(chunk_PHXLQVPT_exports, {
31
+ executeSeedCommand: () => executeSeedCommand,
32
+ getSeedCommandFromPackageJson: () => getSeedCommandFromPackageJson
32
33
  });
33
- module.exports = __toCommonJS(chunk_L7EZFBB4_exports);
34
+ module.exports = __toCommonJS(chunk_PHXLQVPT_exports);
34
35
  var import_chunk_3WDCTXHL = require("./chunk-3WDCTXHL.js");
35
36
  var import_chunk_SKRR5WT4 = require("./chunk-SKRR5WT4.js");
36
37
  var import_chunk_2ESYSVXG = require("./chunk-2ESYSVXG.js");
38
+ var import_node_path = __toESM(require("node:path"));
39
+ var import_config = require("@prisma/config");
37
40
  var import_debug = __toESM(require("@prisma/debug"));
38
41
  var import_node_buffer = require("node:buffer");
39
- var import_node_path = __toESM(require("node:path"));
42
+ var import_node_path2 = __toESM(require("node:path"));
40
43
  var import_node_child_process = __toESM(require("node:child_process"));
41
44
  var import_node_process = __toESM(require("node:process"));
42
45
  var import_node_process2 = __toESM(require("node:process"));
43
- var import_node_path2 = __toESM(require("node:path"));
46
+ var import_node_path3 = __toESM(require("node:path"));
44
47
  var import_node_url = require("node:url");
45
48
  var import_node_process3 = __toESM(require("node:process"));
46
49
  var import_node_os = require("node:os");
@@ -60,7 +63,7 @@ var require_windows = (0, import_chunk_2ESYSVXG.__commonJS)({
60
63
  module2.exports = isexe;
61
64
  isexe.sync = sync;
62
65
  var fs = (0, import_chunk_2ESYSVXG.__require)("fs");
63
- function checkPathExt(path3, options) {
66
+ function checkPathExt(path4, options) {
64
67
  var pathext = options.pathExt !== void 0 ? options.pathExt : process.env.PATHEXT;
65
68
  if (!pathext) {
66
69
  return true;
@@ -71,25 +74,25 @@ var require_windows = (0, import_chunk_2ESYSVXG.__commonJS)({
71
74
  }
72
75
  for (var i = 0; i < pathext.length; i++) {
73
76
  var p = pathext[i].toLowerCase();
74
- if (p && path3.substr(-p.length).toLowerCase() === p) {
77
+ if (p && path4.substr(-p.length).toLowerCase() === p) {
75
78
  return true;
76
79
  }
77
80
  }
78
81
  return false;
79
82
  }
80
- function checkStat(stat, path3, options) {
83
+ function checkStat(stat, path4, options) {
81
84
  if (!stat.isSymbolicLink() && !stat.isFile()) {
82
85
  return false;
83
86
  }
84
- return checkPathExt(path3, options);
87
+ return checkPathExt(path4, options);
85
88
  }
86
- function isexe(path3, options, cb) {
87
- fs.stat(path3, function(er, stat) {
88
- cb(er, er ? false : checkStat(stat, path3, options));
89
+ function isexe(path4, options, cb) {
90
+ fs.stat(path4, function(er, stat) {
91
+ cb(er, er ? false : checkStat(stat, path4, options));
89
92
  });
90
93
  }
91
- function sync(path3, options) {
92
- return checkStat(fs.statSync(path3), path3, options);
94
+ function sync(path4, options) {
95
+ return checkStat(fs.statSync(path4), path4, options);
93
96
  }
94
97
  }
95
98
  });
@@ -99,13 +102,13 @@ var require_mode = (0, import_chunk_2ESYSVXG.__commonJS)({
99
102
  module2.exports = isexe;
100
103
  isexe.sync = sync;
101
104
  var fs = (0, import_chunk_2ESYSVXG.__require)("fs");
102
- function isexe(path3, options, cb) {
103
- fs.stat(path3, function(er, stat) {
105
+ function isexe(path4, options, cb) {
106
+ fs.stat(path4, function(er, stat) {
104
107
  cb(er, er ? false : checkStat(stat, options));
105
108
  });
106
109
  }
107
- function sync(path3, options) {
108
- return checkStat(fs.statSync(path3), options);
110
+ function sync(path4, options) {
111
+ return checkStat(fs.statSync(path4), options);
109
112
  }
110
113
  function checkStat(stat, options) {
111
114
  return stat.isFile() && checkMode(stat, options);
@@ -137,7 +140,7 @@ var require_isexe = (0, import_chunk_2ESYSVXG.__commonJS)({
137
140
  }
138
141
  module2.exports = isexe;
139
142
  isexe.sync = sync;
140
- function isexe(path3, options, cb) {
143
+ function isexe(path4, options, cb) {
141
144
  if (typeof options === "function") {
142
145
  cb = options;
143
146
  options = {};
@@ -147,7 +150,7 @@ var require_isexe = (0, import_chunk_2ESYSVXG.__commonJS)({
147
150
  throw new TypeError("callback not provided");
148
151
  }
149
152
  return new Promise(function(resolve, reject) {
150
- isexe(path3, options || {}, function(er, is) {
153
+ isexe(path4, options || {}, function(er, is) {
151
154
  if (er) {
152
155
  reject(er);
153
156
  } else {
@@ -156,7 +159,7 @@ var require_isexe = (0, import_chunk_2ESYSVXG.__commonJS)({
156
159
  });
157
160
  });
158
161
  }
159
- core(path3, options || {}, function(er, is) {
162
+ core(path4, options || {}, function(er, is) {
160
163
  if (er) {
161
164
  if (er.code === "EACCES" || options && options.ignoreErrors) {
162
165
  er = null;
@@ -166,9 +169,9 @@ var require_isexe = (0, import_chunk_2ESYSVXG.__commonJS)({
166
169
  cb(er, is);
167
170
  });
168
171
  }
169
- function sync(path3, options) {
172
+ function sync(path4, options) {
170
173
  try {
171
- return core.sync(path3, options || {});
174
+ return core.sync(path4, options || {});
172
175
  } catch (er) {
173
176
  if (options && options.ignoreErrors || er.code === "EACCES") {
174
177
  return false;
@@ -183,7 +186,7 @@ var require_which = (0, import_chunk_2ESYSVXG.__commonJS)({
183
186
  "../../node_modules/.pnpm/which@2.0.2/node_modules/which/which.js"(exports, module2) {
184
187
  "use strict";
185
188
  var isWindows = process.platform === "win32" || process.env.OSTYPE === "cygwin" || process.env.OSTYPE === "msys";
186
- var path3 = (0, import_chunk_2ESYSVXG.__require)("path");
189
+ var path4 = (0, import_chunk_2ESYSVXG.__require)("path");
187
190
  var COLON = isWindows ? ";" : ":";
188
191
  var isexe = require_isexe();
189
192
  var getNotFoundError = (cmd) => Object.assign(new Error(`not found: ${cmd}`), { code: "ENOENT" });
@@ -221,7 +224,7 @@ var require_which = (0, import_chunk_2ESYSVXG.__commonJS)({
221
224
  return opt.all && found.length ? resolve(found) : reject(getNotFoundError(cmd));
222
225
  const ppRaw = pathEnv[i];
223
226
  const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw;
224
- const pCmd = path3.join(pathPart, cmd);
227
+ const pCmd = path4.join(pathPart, cmd);
225
228
  const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd : pCmd;
226
229
  resolve(subStep(p, i, 0));
227
230
  });
@@ -248,7 +251,7 @@ var require_which = (0, import_chunk_2ESYSVXG.__commonJS)({
248
251
  for (let i = 0; i < pathEnv.length; i++) {
249
252
  const ppRaw = pathEnv[i];
250
253
  const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw;
251
- const pCmd = path3.join(pathPart, cmd);
254
+ const pCmd = path4.join(pathPart, cmd);
252
255
  const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd : pCmd;
253
256
  for (let j = 0; j < pathExt.length; j++) {
254
257
  const cur = p + pathExt[j];
@@ -292,7 +295,7 @@ var require_path_key = (0, import_chunk_2ESYSVXG.__commonJS)({
292
295
  var require_resolveCommand = (0, import_chunk_2ESYSVXG.__commonJS)({
293
296
  "../../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/resolveCommand.js"(exports, module2) {
294
297
  "use strict";
295
- var path3 = (0, import_chunk_2ESYSVXG.__require)("path");
298
+ var path4 = (0, import_chunk_2ESYSVXG.__require)("path");
296
299
  var which = require_which();
297
300
  var getPathKey = require_path_key();
298
301
  function resolveCommandAttempt(parsed, withoutPathExt) {
@@ -310,7 +313,7 @@ var require_resolveCommand = (0, import_chunk_2ESYSVXG.__commonJS)({
310
313
  try {
311
314
  resolved = which.sync(parsed.command, {
312
315
  path: env[getPathKey({ env })],
313
- pathExt: withoutPathExt ? path3.delimiter : void 0
316
+ pathExt: withoutPathExt ? path4.delimiter : void 0
314
317
  });
315
318
  } catch (e) {
316
319
  } finally {
@@ -319,7 +322,7 @@ var require_resolveCommand = (0, import_chunk_2ESYSVXG.__commonJS)({
319
322
  }
320
323
  }
321
324
  if (resolved) {
322
- resolved = path3.resolve(hasCustomCwd ? parsed.options.cwd : "", resolved);
325
+ resolved = path4.resolve(hasCustomCwd ? parsed.options.cwd : "", resolved);
323
326
  }
324
327
  return resolved;
325
328
  }
@@ -367,8 +370,8 @@ var require_shebang_command = (0, import_chunk_2ESYSVXG.__commonJS)({
367
370
  if (!match) {
368
371
  return null;
369
372
  }
370
- const [path3, argument] = match[0].replace(/#! ?/, "").split(" ");
371
- const binary = path3.split("/").pop();
373
+ const [path4, argument] = match[0].replace(/#! ?/, "").split(" ");
374
+ const binary = path4.split("/").pop();
372
375
  if (binary === "env") {
373
376
  return argument;
374
377
  }
@@ -399,7 +402,7 @@ var require_readShebang = (0, import_chunk_2ESYSVXG.__commonJS)({
399
402
  var require_parse = (0, import_chunk_2ESYSVXG.__commonJS)({
400
403
  "../../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/parse.js"(exports, module2) {
401
404
  "use strict";
402
- var path3 = (0, import_chunk_2ESYSVXG.__require)("path");
405
+ var path4 = (0, import_chunk_2ESYSVXG.__require)("path");
403
406
  var resolveCommand = require_resolveCommand();
404
407
  var escape = require_escape();
405
408
  var readShebang = require_readShebang();
@@ -424,7 +427,7 @@ var require_parse = (0, import_chunk_2ESYSVXG.__commonJS)({
424
427
  const needsShell = !isExecutableRegExp.test(commandFile);
425
428
  if (parsed.options.forceShell || needsShell) {
426
429
  const needsDoubleEscapeMetaChars = isCmdShimRegExp.test(commandFile);
427
- parsed.command = path3.normalize(parsed.command);
430
+ parsed.command = path4.normalize(parsed.command);
428
431
  parsed.command = escape.command(parsed.command);
429
432
  parsed.args = parsed.args.map((arg) => escape.argument(arg, needsDoubleEscapeMetaChars));
430
433
  const shellCommand = [parsed.command].concat(parsed.args).join(" ");
@@ -597,7 +600,7 @@ var npmRunPath = ({
597
600
  addExecPath = true
598
601
  } = {}) => {
599
602
  const cwdString = cwd instanceof URL ? (0, import_node_url.fileURLToPath)(cwd) : cwd;
600
- const cwdPath = import_node_path2.default.resolve(cwdString);
603
+ const cwdPath = import_node_path3.default.resolve(cwdString);
601
604
  const result = [];
602
605
  if (preferLocal) {
603
606
  applyPreferLocal(result, cwdPath);
@@ -605,19 +608,19 @@ var npmRunPath = ({
605
608
  if (addExecPath) {
606
609
  applyExecPath(result, execPath, cwdPath);
607
610
  }
608
- return [...result, pathOption].join(import_node_path2.default.delimiter);
611
+ return [...result, pathOption].join(import_node_path3.default.delimiter);
609
612
  };
610
613
  var applyPreferLocal = (result, cwdPath) => {
611
614
  let previous;
612
615
  while (previous !== cwdPath) {
613
- result.push(import_node_path2.default.join(cwdPath, "node_modules/.bin"));
616
+ result.push(import_node_path3.default.join(cwdPath, "node_modules/.bin"));
614
617
  previous = cwdPath;
615
- cwdPath = import_node_path2.default.resolve(cwdPath, "..");
618
+ cwdPath = import_node_path3.default.resolve(cwdPath, "..");
616
619
  }
617
620
  };
618
621
  var applyExecPath = (result, execPath, cwdPath) => {
619
622
  const execPathString = execPath instanceof URL ? (0, import_node_url.fileURLToPath)(execPath) : execPath;
620
- result.push(import_node_path2.default.resolve(cwdPath, execPathString, ".."));
623
+ result.push(import_node_path3.default.resolve(cwdPath, execPathString, ".."));
621
624
  };
622
625
  var npmRunPathEnv = ({ env = import_node_process2.default.env, ...options } = {}) => {
623
626
  env = { ...env };
@@ -1662,7 +1665,7 @@ var handleArguments = (file, args, options = {}) => {
1662
1665
  };
1663
1666
  options.env = getEnv(options);
1664
1667
  options.stdio = normalizeStdio(options);
1665
- if (import_node_process.default.platform === "win32" && import_node_path.default.basename(file, ".exe") === "cmd") {
1668
+ if (import_node_process.default.platform === "win32" && import_node_path2.default.basename(file, ".exe") === "cmd") {
1666
1669
  args.unshift("/q");
1667
1670
  }
1668
1671
  return { file, args, options, parsed };
@@ -1838,6 +1841,31 @@ function execaCommand(command, options) {
1838
1841
  return execa(file, args, options);
1839
1842
  }
1840
1843
  var debug = (0, import_debug.default)("prisma:migrate:seed");
1844
+ async function getSeedCommandFromPackageJson(cwd) {
1845
+ const prismaConfig = await (0, import_config.loadConfigFromPackageJson)(cwd);
1846
+ debug({ prismaConfig });
1847
+ if (!prismaConfig?.config?.seed) {
1848
+ return null;
1849
+ }
1850
+ const seedCommandFromPkgJson = prismaConfig.config.seed;
1851
+ if (typeof seedCommandFromPkgJson !== "string") {
1852
+ throw new Error(
1853
+ `Provided seed command \`${seedCommandFromPkgJson}\` from \`${import_node_path.default.relative(
1854
+ cwd,
1855
+ prismaConfig.loadedFromFile
1856
+ )}\` must be of type string`
1857
+ );
1858
+ }
1859
+ if (!seedCommandFromPkgJson) {
1860
+ throw new Error(
1861
+ `Provided seed command \`${seedCommandFromPkgJson}\` from \`${import_node_path.default.relative(
1862
+ cwd,
1863
+ prismaConfig.loadedFromFile
1864
+ )}\` cannot be empty`
1865
+ );
1866
+ }
1867
+ return prismaConfig.config.seed;
1868
+ }
1841
1869
  async function executeSeedCommand({
1842
1870
  commandFromConfig,
1843
1871
  extraArgs
@@ -26,14 +26,14 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var chunk_YB32XZV6_exports = {};
30
- __export(chunk_YB32XZV6_exports, {
29
+ var chunk_R4IWP35Z_exports = {};
30
+ __export(chunk_R4IWP35Z_exports, {
31
31
  MigrateStatus: () => MigrateStatus
32
32
  });
33
- module.exports = __toCommonJS(chunk_YB32XZV6_exports);
33
+ module.exports = __toCommonJS(chunk_R4IWP35Z_exports);
34
34
  var import_chunk_2FXU5NZQ = require("./chunk-2FXU5NZQ.js");
35
35
  var import_chunk_74LUB4XX = require("./chunk-74LUB4XX.js");
36
- var import_chunk_RMMTCJSW = require("./chunk-RMMTCJSW.js");
36
+ var import_chunk_D6LYHB65 = require("./chunk-D6LYHB65.js");
37
37
  var import_chunk_SKRR5WT4 = require("./chunk-SKRR5WT4.js");
38
38
  var import_debug = __toESM(require("@prisma/debug"));
39
39
  var import_internals = require("@prisma/internals");
@@ -81,7 +81,7 @@ Check the status of your database migrations
81
81
  if (args["--help"]) {
82
82
  return this.help();
83
83
  }
84
- (0, import_internals.loadEnvFile)({ schemaPath: args["--schema"], printMessage: true, config });
84
+ await (0, import_internals.loadEnvFile)({ schemaPath: args["--schema"], printMessage: true, config });
85
85
  const schemaContext = await (0, import_internals.loadSchemaContext)({
86
86
  schemaPathFromArg: args["--schema"],
87
87
  schemaPathFromConfig: config.schema,
@@ -95,7 +95,7 @@ Check the status of your database migrations
95
95
  externalTables: config.tables?.external ?? [],
96
96
  externalEnums: config.enums?.external ?? []
97
97
  };
98
- const migrate = await import_chunk_RMMTCJSW.Migrate.setup({
98
+ const migrate = await import_chunk_D6LYHB65.Migrate.setup({
99
99
  schemaEngineConfig: config,
100
100
  migrationsDirPath,
101
101
  schemaContext,
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var chunk_RR6BKMNO_exports = {};
20
+ __export(chunk_RR6BKMNO_exports, {
21
+ replaceOrAddDatasource: () => replaceOrAddDatasource
22
+ });
23
+ module.exports = __toCommonJS(chunk_RR6BKMNO_exports);
24
+ var import_internals = require("@prisma/internals");
25
+ function replaceOrAddDatasource(newDatasource, files) {
26
+ let replaced = false;
27
+ const result = files.map(([path, content]) => {
28
+ const replaceResult = replaceDatasourceSingle(newDatasource, content);
29
+ if (replaceResult.replaced) {
30
+ replaced = true;
31
+ }
32
+ return [path, replaceResult.content];
33
+ });
34
+ if (!replaced) {
35
+ appendToFirstFile(newDatasource, result);
36
+ }
37
+ return result;
38
+ }
39
+ function appendToFirstFile(newDatasource, files) {
40
+ const firstFile = files[0];
41
+ (0, import_internals.assertAlways)(firstFile, "There always should be at least on file in the schema");
42
+ firstFile[1] = `${newDatasource}
43
+ ${firstFile[1]}`;
44
+ }
45
+ function replaceDatasourceSingle(newDatasource, content) {
46
+ const lines = content.split(/\r\n|\r|\n/g);
47
+ const existingDatasource = findDatasource(lines);
48
+ if (!existingDatasource) {
49
+ return { replaced: false, content };
50
+ }
51
+ lines.splice(existingDatasource.startLine, existingDatasource.endLine - existingDatasource.startLine + 1);
52
+ const noDatasource = lines.join("\n").trim();
53
+ return { replaced: true, content: `${newDatasource}
54
+
55
+ ${noDatasource}` };
56
+ }
57
+ function findDatasource(lines) {
58
+ if (lines.length <= 2) {
59
+ return void 0;
60
+ }
61
+ const startLine = lines.findIndex((line) => {
62
+ const lineTrimmed = line.trim();
63
+ return lineTrimmed.startsWith("datasource") && lineTrimmed.endsWith("{");
64
+ });
65
+ if (startLine === -1) {
66
+ return void 0;
67
+ }
68
+ let endLine = -1;
69
+ for (let index = startLine; index < lines.length; index++) {
70
+ const lineTrimmed = lines[index].trim();
71
+ if (lineTrimmed.endsWith("}") && !lineTrimmed.startsWith("//")) {
72
+ endLine = index;
73
+ break;
74
+ }
75
+ }
76
+ if (endLine === -1) {
77
+ return void 0;
78
+ }
79
+ return { startLine, endLine };
80
+ }
@@ -26,16 +26,16 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var chunk_TIVQQZRQ_exports = {};
30
- __export(chunk_TIVQQZRQ_exports, {
29
+ var chunk_TW22Y3AA_exports = {};
30
+ __export(chunk_TW22Y3AA_exports, {
31
31
  DbPush: () => DbPush
32
32
  });
33
- module.exports = __toCommonJS(chunk_TIVQQZRQ_exports);
33
+ module.exports = __toCommonJS(chunk_TW22Y3AA_exports);
34
34
  var import_chunk_FBDQVK4W = require("./chunk-FBDQVK4W.js");
35
35
  var import_chunk_3WC4XD74 = require("./chunk-3WC4XD74.js");
36
36
  var import_chunk_2FXU5NZQ = require("./chunk-2FXU5NZQ.js");
37
37
  var import_chunk_74LUB4XX = require("./chunk-74LUB4XX.js");
38
- var import_chunk_RMMTCJSW = require("./chunk-RMMTCJSW.js");
38
+ var import_chunk_D6LYHB65 = require("./chunk-D6LYHB65.js");
39
39
  var import_chunk_SKRR5WT4 = require("./chunk-SKRR5WT4.js");
40
40
  var import_internals = require("@prisma/internals");
41
41
  var import_prompts = __toESM(require("prompts"));
@@ -91,7 +91,7 @@ ${(0, import_chunk_SKRR5WT4.bold)("Examples")}
91
91
  if (args["--help"]) {
92
92
  return this.help();
93
93
  }
94
- (0, import_internals.loadEnvFile)({ schemaPath: args["--schema"], printMessage: true, config });
94
+ await (0, import_internals.loadEnvFile)({ schemaPath: args["--schema"], printMessage: true, config });
95
95
  const schemaContext = await (0, import_internals.loadSchemaContext)({
96
96
  schemaPathFromArg: args["--schema"],
97
97
  schemaPathFromConfig: config.schema,
@@ -106,7 +106,7 @@ ${(0, import_chunk_SKRR5WT4.bold)("Examples")}
106
106
  externalTables: config.tables?.external ?? [],
107
107
  externalEnums: config.enums?.external ?? []
108
108
  };
109
- const migrate = await import_chunk_RMMTCJSW.Migrate.setup({
109
+ const migrate = await import_chunk_D6LYHB65.Migrate.setup({
110
110
  schemaEngineConfig: config,
111
111
  migrationsDirPath,
112
112
  schemaContext,
@@ -26,11 +26,11 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var chunk_43R3GFIU_exports = {};
30
- __export(chunk_43R3GFIU_exports, {
29
+ var chunk_Z27SI4AV_exports = {};
30
+ __export(chunk_Z27SI4AV_exports, {
31
31
  DbDrop: () => DbDrop
32
32
  });
33
- module.exports = __toCommonJS(chunk_43R3GFIU_exports);
33
+ module.exports = __toCommonJS(chunk_Z27SI4AV_exports);
34
34
  var import_chunk_IHDN3L3R = require("./chunk-IHDN3L3R.js");
35
35
  var import_chunk_FBDQVK4W = require("./chunk-FBDQVK4W.js");
36
36
  var import_chunk_3WC4XD74 = require("./chunk-3WC4XD74.js");
@@ -94,7 +94,7 @@ ${(0, import_chunk_SKRR5WT4.bold)("Examples")}
94
94
  if (!args["--preview-feature"]) {
95
95
  throw new import_chunk_IHDN3L3R.PreviewFlagError();
96
96
  }
97
- (0, import_internals.loadEnvFile)({ schemaPath: args["--schema"], printMessage: true, config });
97
+ await (0, import_internals.loadEnvFile)({ schemaPath: args["--schema"], printMessage: true, config });
98
98
  const schemaContext = await (0, import_internals.loadSchemaContext)({
99
99
  schemaPathFromArg: args["--schema"],
100
100
  schemaPathFromConfig: config.schema,
@@ -26,19 +26,20 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var chunk_55CU3CV4_exports = {};
30
- __export(chunk_55CU3CV4_exports, {
29
+ var chunk_ZTIS675B_exports = {};
30
+ __export(chunk_ZTIS675B_exports, {
31
31
  MigrateDiff: () => MigrateDiff
32
32
  });
33
- module.exports = __toCommonJS(chunk_55CU3CV4_exports);
33
+ module.exports = __toCommonJS(chunk_ZTIS675B_exports);
34
34
  var import_chunk_VAJ4VX67 = require("./chunk-VAJ4VX67.js");
35
- var import_chunk_RMMTCJSW = require("./chunk-RMMTCJSW.js");
35
+ var import_chunk_D6LYHB65 = require("./chunk-D6LYHB65.js");
36
36
  var import_chunk_GGA2F64G = require("./chunk-GGA2F64G.js");
37
37
  var import_chunk_SKRR5WT4 = require("./chunk-SKRR5WT4.js");
38
38
  var import_chunk_2ESYSVXG = require("./chunk-2ESYSVXG.js");
39
39
  var import_debug = __toESM(require("@prisma/debug"));
40
40
  var import_internals = require("@prisma/internals");
41
41
  var import_path = __toESM(require("path"));
42
+ var import_config = require("@prisma/config");
42
43
  var import_debug2 = require("@prisma/debug");
43
44
  var import_fs = __toESM(require("fs"));
44
45
  var import_path2 = __toESM(require("path"));
@@ -5568,6 +5569,10 @@ async function getSchemaWithPathInternal(schemaPathFromArgs, schemaPathFromConfi
5568
5569
  if (prismaConfigResult.ok) {
5569
5570
  return prismaConfigResult;
5570
5571
  }
5572
+ const pkgJsonResult = await getSchemaFromPackageJson(cwd);
5573
+ if (pkgJsonResult.ok) {
5574
+ return pkgJsonResult;
5575
+ }
5571
5576
  const defaultResult = await getDefaultSchema(cwd);
5572
5577
  if (defaultResult.ok) {
5573
5578
  return defaultResult;
@@ -5624,6 +5629,36 @@ async function readSchemaFromPrismaConfigBasedLocation(schemaPathFromConfig) {
5624
5629
  }
5625
5630
  return schemaResult;
5626
5631
  }
5632
+ async function getSchemaFromPackageJson(cwd) {
5633
+ const prismaConfig = await (0, import_config.loadConfigFromPackageJson)(cwd);
5634
+ debug("prismaConfig", prismaConfig);
5635
+ if (!prismaConfig || !prismaConfig.config?.schema) {
5636
+ return { ok: false, error: { kind: "PackageJsonNotConfigured" } };
5637
+ }
5638
+ const schemaPathFromPkgJson = prismaConfig.config.schema;
5639
+ if (typeof schemaPathFromPkgJson !== "string") {
5640
+ throw new Error(
5641
+ `Provided schema path \`${schemaPathFromPkgJson}\` from \`${import_path2.default.relative(
5642
+ cwd,
5643
+ prismaConfig.loadedFromFile
5644
+ )}\` must be of type string`
5645
+ );
5646
+ }
5647
+ const absoluteSchemaPath = import_path2.default.isAbsolute(schemaPathFromPkgJson) ? schemaPathFromPkgJson : import_path2.default.resolve(import_path2.default.dirname(prismaConfig.loadedFromFile), schemaPathFromPkgJson);
5648
+ const lookupResult = await readSchemaFromFileOrDirectory(absoluteSchemaPath);
5649
+ if (!lookupResult.ok) {
5650
+ throw new Error(
5651
+ `Could not load schema from \`${import_path2.default.relative(
5652
+ cwd,
5653
+ absoluteSchemaPath
5654
+ )}\` provided by "prisma.schema" config of \`${import_path2.default.relative(
5655
+ cwd,
5656
+ prismaConfig.loadedFromFile
5657
+ )}\`: ${renderLookupError(lookupResult.error)}`
5658
+ );
5659
+ }
5660
+ return lookupResult;
5661
+ }
5627
5662
  async function getDefaultSchema(cwd, failures = []) {
5628
5663
  const lookupPaths = [import_path2.default.join(cwd, "schema.prisma"), import_path2.default.join(cwd, "prisma", "schema.prisma")];
5629
5664
  for (const path3 of lookupPaths) {
@@ -5838,7 +5873,7 @@ ${(0, import_chunk_SKRR5WT4.bold)("Examples")}
5838
5873
  tag: "empty"
5839
5874
  };
5840
5875
  } else if (args["--from-schema-datasource"]) {
5841
- (0, import_internals.loadEnvFile)({ schemaPath: args["--from-schema-datasource"], printMessage: false, config });
5876
+ await (0, import_internals.loadEnvFile)({ schemaPath: args["--from-schema-datasource"], printMessage: false, config });
5842
5877
  const schemaContext = await (0, import_internals.loadSchemaContext)({
5843
5878
  schemaPathFromArg: args["--from-schema-datasource"],
5844
5879
  schemaPathArgumentName: "--from-schema-datasource",
@@ -5881,7 +5916,7 @@ ${(0, import_chunk_SKRR5WT4.bold)("Examples")}
5881
5916
  tag: "empty"
5882
5917
  };
5883
5918
  } else if (args["--to-schema-datasource"]) {
5884
- (0, import_internals.loadEnvFile)({ schemaPath: args["--to-schema-datasource"], printMessage: false, config });
5919
+ await (0, import_internals.loadEnvFile)({ schemaPath: args["--to-schema-datasource"], printMessage: false, config });
5885
5920
  const schemaContext = await (0, import_internals.loadSchemaContext)({
5886
5921
  schemaPathFromArg: args["--to-schema-datasource"],
5887
5922
  schemaPathArgumentName: "--to-schema-datasource",
@@ -5921,7 +5956,7 @@ ${(0, import_chunk_SKRR5WT4.bold)("Examples")}
5921
5956
  externalTables: config.tables?.external ?? [],
5922
5957
  externalEnums: config.enums?.external ?? []
5923
5958
  };
5924
- const migrate = await import_chunk_RMMTCJSW.Migrate.setup({
5959
+ const migrate = await import_chunk_D6LYHB65.Migrate.setup({
5925
5960
  schemaEngineConfig: config,
5926
5961
  schemaFilter,
5927
5962
  extensions: config["extensions"]
@@ -18,10 +18,10 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var DbDrop_exports = {};
20
20
  __export(DbDrop_exports, {
21
- DbDrop: () => import_chunk_43R3GFIU.DbDrop
21
+ DbDrop: () => import_chunk_Z27SI4AV.DbDrop
22
22
  });
23
23
  module.exports = __toCommonJS(DbDrop_exports);
24
- var import_chunk_43R3GFIU = require("../chunk-43R3GFIU.js");
24
+ var import_chunk_Z27SI4AV = require("../chunk-Z27SI4AV.js");
25
25
  var import_chunk_IHDN3L3R = require("../chunk-IHDN3L3R.js");
26
26
  var import_chunk_FBDQVK4W = require("../chunk-FBDQVK4W.js");
27
27
  var import_chunk_3WC4XD74 = require("../chunk-3WC4XD74.js");
@@ -18,13 +18,13 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var DbExecute_exports = {};
20
20
  __export(DbExecute_exports, {
21
- DbExecute: () => import_chunk_RF72HHCJ.DbExecute
21
+ DbExecute: () => import_chunk_7TVX3D4W.DbExecute
22
22
  });
23
23
  module.exports = __toCommonJS(DbExecute_exports);
24
- var import_chunk_RF72HHCJ = require("../chunk-RF72HHCJ.js");
25
- var import_chunk_RMMTCJSW = require("../chunk-RMMTCJSW.js");
26
- var import_chunk_VV4M6AN7 = require("../chunk-VV4M6AN7.js");
24
+ var import_chunk_7TVX3D4W = require("../chunk-7TVX3D4W.js");
25
+ var import_chunk_D6LYHB65 = require("../chunk-D6LYHB65.js");
27
26
  var import_chunk_T64SUJ5L = require("../chunk-T64SUJ5L.js");
27
+ var import_chunk_VV4M6AN7 = require("../chunk-VV4M6AN7.js");
28
28
  var import_chunk_GGA2F64G = require("../chunk-GGA2F64G.js");
29
29
  var import_chunk_23DZXSTI = require("../chunk-23DZXSTI.js");
30
30
  var import_chunk_3WDCTXHL = require("../chunk-3WDCTXHL.js");
@@ -18,13 +18,14 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var DbPull_exports = {};
20
20
  __export(DbPull_exports, {
21
- DbPull: () => import_chunk_I2VUHLTD.DbPull
21
+ DbPull: () => import_chunk_6ORQRJLP.DbPull
22
22
  });
23
23
  module.exports = __toCommonJS(DbPull_exports);
24
- var import_chunk_I2VUHLTD = require("../chunk-I2VUHLTD.js");
24
+ var import_chunk_6ORQRJLP = require("../chunk-6ORQRJLP.js");
25
25
  var import_chunk_VU5BLQUI = require("../chunk-VU5BLQUI.js");
26
26
  var import_chunk_AHJ2N6BJ = require("../chunk-AHJ2N6BJ.js");
27
27
  var import_chunk_JZ75RIMZ = require("../chunk-JZ75RIMZ.js");
28
+ var import_chunk_RR6BKMNO = require("../chunk-RR6BKMNO.js");
28
29
  var import_chunk_RTGQXNX6 = require("../chunk-RTGQXNX6.js");
29
30
  var import_chunk_JFKDSUIE = require("../chunk-JFKDSUIE.js");
30
31
  var import_chunk_AI6DH66U = require("../chunk-AI6DH66U.js");
@@ -34,9 +35,9 @@ var import_chunk_3WC4XD74 = require("../chunk-3WC4XD74.js");
34
35
  var import_chunk_2FXU5NZQ = require("../chunk-2FXU5NZQ.js");
35
36
  var import_chunk_74LUB4XX = require("../chunk-74LUB4XX.js");
36
37
  var import_chunk_TWPTG4XS = require("../chunk-TWPTG4XS.js");
37
- var import_chunk_RMMTCJSW = require("../chunk-RMMTCJSW.js");
38
- var import_chunk_VV4M6AN7 = require("../chunk-VV4M6AN7.js");
38
+ var import_chunk_D6LYHB65 = require("../chunk-D6LYHB65.js");
39
39
  var import_chunk_T64SUJ5L = require("../chunk-T64SUJ5L.js");
40
+ var import_chunk_VV4M6AN7 = require("../chunk-VV4M6AN7.js");
40
41
  var import_chunk_GGA2F64G = require("../chunk-GGA2F64G.js");
41
42
  var import_chunk_23DZXSTI = require("../chunk-23DZXSTI.js");
42
43
  var import_chunk_3WDCTXHL = require("../chunk-3WDCTXHL.js");
@@ -18,18 +18,18 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var DbPush_exports = {};
20
20
  __export(DbPush_exports, {
21
- DbPush: () => import_chunk_TIVQQZRQ.DbPush
21
+ DbPush: () => import_chunk_TW22Y3AA.DbPush
22
22
  });
23
23
  module.exports = __toCommonJS(DbPush_exports);
24
- var import_chunk_TIVQQZRQ = require("../chunk-TIVQQZRQ.js");
24
+ var import_chunk_TW22Y3AA = require("../chunk-TW22Y3AA.js");
25
25
  var import_chunk_FBDQVK4W = require("../chunk-FBDQVK4W.js");
26
26
  var import_chunk_3WC4XD74 = require("../chunk-3WC4XD74.js");
27
27
  var import_chunk_2FXU5NZQ = require("../chunk-2FXU5NZQ.js");
28
28
  var import_chunk_74LUB4XX = require("../chunk-74LUB4XX.js");
29
29
  var import_chunk_TWPTG4XS = require("../chunk-TWPTG4XS.js");
30
- var import_chunk_RMMTCJSW = require("../chunk-RMMTCJSW.js");
31
- var import_chunk_VV4M6AN7 = require("../chunk-VV4M6AN7.js");
30
+ var import_chunk_D6LYHB65 = require("../chunk-D6LYHB65.js");
32
31
  var import_chunk_T64SUJ5L = require("../chunk-T64SUJ5L.js");
32
+ var import_chunk_VV4M6AN7 = require("../chunk-VV4M6AN7.js");
33
33
  var import_chunk_GGA2F64G = require("../chunk-GGA2F64G.js");
34
34
  var import_chunk_23DZXSTI = require("../chunk-23DZXSTI.js");
35
35
  var import_chunk_3WDCTXHL = require("../chunk-3WDCTXHL.js");