@prisma/migrate 6.19.0-integration-next.16 → 6.19.0-integration-engines-6-19-0-32-next-568b222d0ab829bbbe5f2fd48ed587836813346c.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 (42) hide show
  1. package/dist/Migrate.js +3 -3
  2. package/dist/bin.js +27 -26
  3. package/dist/{chunk-25AB2KOW.js → chunk-3AKRTEIK.js} +11 -10
  4. package/dist/{chunk-GIFCHCJW.js → chunk-6ORQRJLP.js} +51 -16
  5. package/dist/{chunk-AP47ZTTC.js → chunk-7TVX3D4W.js} +65 -27
  6. package/dist/{chunk-7WBJ2X2Q.js → chunk-BHJMJSM4.js} +7 -6
  7. package/dist/{chunk-WF7UXKO5.js → chunk-D4TRX77Y.js} +9 -6
  8. package/dist/{chunk-MOFG2YPJ.js → chunk-D6LYHB65.js} +7 -5
  9. package/dist/{chunk-CC6YNI65.js → chunk-F2XCBEZ4.js} +13 -10
  10. package/dist/{chunk-L2HDMVMA.js → chunk-J33EXHZB.js} +12 -9
  11. package/dist/{chunk-SIUB4YHK.js → chunk-NB4FRYRQ.js} +5 -5
  12. package/dist/{chunk-ZRKC6FIA.js → chunk-O35BTK6Y.js} +13 -9
  13. package/dist/{chunk-L7EZFBB4.js → chunk-PHXLQVPT.js} +68 -40
  14. package/dist/{chunk-IABFQ4QV.js → chunk-R4IWP35Z.js} +9 -8
  15. package/dist/chunk-RR6BKMNO.js +80 -0
  16. package/dist/{chunk-3UZC7DDN.js → chunk-TW22Y3AA.js} +7 -6
  17. package/dist/{chunk-GY34KW2I.js → chunk-Z27SI4AV.js} +4 -6
  18. package/dist/{chunk-LV343IWU.js → chunk-ZTIS675B.js} +48 -11
  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/Migrate.d.ts +2 -1
  33. package/dist/migrate/src/utils/introspectSql.d.ts +1 -2
  34. package/dist/migrate/src/utils/replaceOrAddDatasource.d.ts +2 -0
  35. package/dist/migrate/src/utils/replaceOrAddDatasource.test.d.ts +1 -0
  36. package/dist/migrate/src/utils/seed.d.ts +6 -0
  37. package/dist/utils/getDatabaseVersionSafe.js +4 -4
  38. package/dist/utils/introspectSql.js +4 -4
  39. package/dist/utils/replaceOrAddDatasource.js +25 -0
  40. package/dist/utils/replaceOrAddDatasource.test.js +207 -0
  41. package/dist/utils/seed.js +3 -2
  42. package/package.json +11 -11
@@ -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_CC6YNI65_exports = {};
30
- __export(chunk_CC6YNI65_exports, {
29
+ var chunk_F2XCBEZ4_exports = {};
30
+ __export(chunk_F2XCBEZ4_exports, {
31
31
  MigrateDev: () => MigrateDev
32
32
  });
33
- module.exports = __toCommonJS(chunk_CC6YNI65_exports);
33
+ module.exports = __toCommonJS(chunk_F2XCBEZ4_exports);
34
34
  var import_chunk_C3722PDA = require("./chunk-C3722PDA.js");
35
35
  var import_chunk_7CQBDP4H = require("./chunk-7CQBDP4H.js");
36
36
  var import_chunk_KRQEFTDT = require("./chunk-KRQEFTDT.js");
@@ -38,8 +38,8 @@ var import_chunk_UP6FVCDK = require("./chunk-UP6FVCDK.js");
38
38
  var import_chunk_3WC4XD74 = require("./chunk-3WC4XD74.js");
39
39
  var import_chunk_2FXU5NZQ = require("./chunk-2FXU5NZQ.js");
40
40
  var import_chunk_74LUB4XX = require("./chunk-74LUB4XX.js");
41
- var import_chunk_L7EZFBB4 = require("./chunk-L7EZFBB4.js");
42
- var import_chunk_MOFG2YPJ = require("./chunk-MOFG2YPJ.js");
41
+ var import_chunk_PHXLQVPT = require("./chunk-PHXLQVPT.js");
42
+ var import_chunk_D6LYHB65 = require("./chunk-D6LYHB65.js");
43
43
  var import_chunk_SKRR5WT4 = require("./chunk-SKRR5WT4.js");
44
44
  var import_node_path = __toESM(require("node:path"));
45
45
  var import_debug = __toESM(require("@prisma/debug"));
@@ -52,7 +52,7 @@ var MigrateDev = class _MigrateDev {
52
52
  }
53
53
  static help = (0, import_internals.format)(`
54
54
  ${process.platform === "win32" ? "" : "\u{1F3CB}\uFE0F "}Create a migration from changes in Prisma schema, apply it to the database, trigger generators (e.g. Prisma Client)
55
-
55
+
56
56
  ${(0, import_chunk_SKRR5WT4.bold)("Usage")}
57
57
 
58
58
  ${(0, import_chunk_SKRR5WT4.dim)("$")} prisma migrate dev [options]
@@ -100,6 +100,7 @@ ${(0, import_chunk_SKRR5WT4.bold)("Examples")}
100
100
  if (args["--help"]) {
101
101
  return this.help();
102
102
  }
103
+ await (0, import_internals.loadEnvFile)({ schemaPath: args["--schema"], printMessage: true, config });
103
104
  const schemaContext = await (0, import_internals.loadSchemaContext)({
104
105
  schemaPathFromArg: args["--schema"],
105
106
  schemaPathFromConfig: config.schema,
@@ -123,7 +124,7 @@ ${(0, import_chunk_SKRR5WT4.bold)("Examples")}
123
124
  externalTables: config.tables?.external ?? [],
124
125
  externalEnums: config.enums?.external ?? []
125
126
  };
126
- const migrate = await import_chunk_MOFG2YPJ.Migrate.setup({
127
+ const migrate = await import_chunk_D6LYHB65.Migrate.setup({
127
128
  schemaEngineConfig: config,
128
129
  migrationsDirPath,
129
130
  schemaContext,
@@ -280,15 +281,17 @@ ${(0, import_chunk_SKRR5WT4.green)("Your database is now in sync with your schem
280
281
  );
281
282
  }
282
283
  if (!process.env.PRISMA_MIGRATE_SKIP_GENERATE && !args["--skip-generate"]) {
283
- await migrate.tryToRunGenerate();
284
+ await migrate.tryToRunGenerate(datasourceInfo);
284
285
  process.stdout.write("\n");
285
286
  }
286
287
  if (wasDbCreated && !process.env.PRISMA_MIGRATE_SKIP_SEED && !args["--skip-seed"]) {
287
288
  try {
288
- const seedCommand = config.migrations?.seed;
289
+ const seedCommandFromPrismaConfig = config.migrations?.seed;
290
+ const seedCommandFromPkgJson = await (0, import_chunk_PHXLQVPT.getSeedCommandFromPackageJson)(process.cwd());
291
+ const seedCommand = seedCommandFromPrismaConfig ?? seedCommandFromPkgJson;
289
292
  if (seedCommand) {
290
293
  process.stdout.write("\n");
291
- const successfulSeeding = await (0, import_chunk_L7EZFBB4.executeSeedCommand)({ commandFromConfig: seedCommand });
294
+ const successfulSeeding = await (0, import_chunk_PHXLQVPT.executeSeedCommand)({ commandFromConfig: seedCommand });
292
295
  if (successfulSeeding) {
293
296
  process.stdout.write(`
294
297
  ${process.platform === "win32" ? "" : "\u{1F331} "}The seed command has been executed.
@@ -26,18 +26,18 @@ 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_L2HDMVMA_exports = {};
30
- __export(chunk_L2HDMVMA_exports, {
29
+ var chunk_J33EXHZB_exports = {};
30
+ __export(chunk_J33EXHZB_exports, {
31
31
  MigrateReset: () => MigrateReset
32
32
  });
33
- module.exports = __toCommonJS(chunk_L2HDMVMA_exports);
33
+ module.exports = __toCommonJS(chunk_J33EXHZB_exports);
34
34
  var import_chunk_KRQEFTDT = require("./chunk-KRQEFTDT.js");
35
35
  var import_chunk_FBDQVK4W = require("./chunk-FBDQVK4W.js");
36
36
  var import_chunk_3WC4XD74 = require("./chunk-3WC4XD74.js");
37
37
  var import_chunk_2FXU5NZQ = require("./chunk-2FXU5NZQ.js");
38
38
  var import_chunk_74LUB4XX = require("./chunk-74LUB4XX.js");
39
- var import_chunk_L7EZFBB4 = require("./chunk-L7EZFBB4.js");
40
- var import_chunk_MOFG2YPJ = require("./chunk-MOFG2YPJ.js");
39
+ var import_chunk_PHXLQVPT = require("./chunk-PHXLQVPT.js");
40
+ var import_chunk_D6LYHB65 = require("./chunk-D6LYHB65.js");
41
41
  var import_chunk_SKRR5WT4 = require("./chunk-SKRR5WT4.js");
42
42
  var import_internals = require("@prisma/internals");
43
43
  var import_prompts = __toESM(require("prompts"));
@@ -90,6 +90,7 @@ ${(0, import_chunk_SKRR5WT4.bold)("Examples")}
90
90
  if (args["--help"]) {
91
91
  return this.help();
92
92
  }
93
+ await (0, import_internals.loadEnvFile)({ schemaPath: args["--schema"], printMessage: true, config });
93
94
  const schemaContext = await (0, import_internals.loadSchemaContext)({
94
95
  schemaPathFromArg: args["--schema"],
95
96
  schemaPathFromConfig: config.schema,
@@ -127,7 +128,7 @@ ${(0, import_chunk_SKRR5WT4.bold)("Examples")}
127
128
  externalTables: config.tables?.external ?? [],
128
129
  externalEnums: config.enums?.external ?? []
129
130
  };
130
- const migrate = await import_chunk_MOFG2YPJ.Migrate.setup({
131
+ const migrate = await import_chunk_D6LYHB65.Migrate.setup({
131
132
  schemaEngineConfig: config,
132
133
  migrationsDirPath,
133
134
  schemaContext,
@@ -159,13 +160,15 @@ ${(0, import_chunk_KRQEFTDT.printFilesFromMigrationIds)("migrations", migrationI
159
160
  );
160
161
  }
161
162
  if (!process.env.PRISMA_MIGRATE_SKIP_GENERATE && !args["--skip-generate"]) {
162
- await migrate.tryToRunGenerate();
163
+ await migrate.tryToRunGenerate(datasourceInfo);
163
164
  }
164
165
  if (!process.env.PRISMA_MIGRATE_SKIP_SEED && !args["--skip-seed"]) {
165
- const seedCommand = config.migrations?.seed;
166
+ const seedCommandFromPrismaConfig = config.migrations?.seed;
167
+ const seedCommandFromPkgJson = await (0, import_chunk_PHXLQVPT.getSeedCommandFromPackageJson)(process.cwd());
168
+ const seedCommand = seedCommandFromPrismaConfig ?? seedCommandFromPkgJson;
166
169
  if (seedCommand) {
167
170
  process.stdout.write("\n");
168
- const successfulSeeding = await (0, import_chunk_L7EZFBB4.executeSeedCommand)({ commandFromConfig: seedCommand });
171
+ const successfulSeeding = await (0, import_chunk_PHXLQVPT.executeSeedCommand)({ commandFromConfig: seedCommand });
169
172
  if (successfulSeeding) {
170
173
  process.stdout.write(`
171
174
  ${process.platform === "win32" ? "" : "\u{1F331} "}The seed command has been executed.
@@ -26,19 +26,19 @@ 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_SIUB4YHK_exports = {};
30
- __export(chunk_SIUB4YHK_exports, {
29
+ var chunk_NB4FRYRQ_exports = {};
30
+ __export(chunk_NB4FRYRQ_exports, {
31
31
  getDatabaseVersionSafe: () => getDatabaseVersionSafe
32
32
  });
33
- module.exports = __toCommonJS(chunk_SIUB4YHK_exports);
34
- var import_chunk_MOFG2YPJ = require("./chunk-MOFG2YPJ.js");
33
+ module.exports = __toCommonJS(chunk_NB4FRYRQ_exports);
34
+ var import_chunk_D6LYHB65 = require("./chunk-D6LYHB65.js");
35
35
  var import_debug = __toESM(require("@prisma/debug"));
36
36
  var debug = (0, import_debug.default)("prisma:cli");
37
37
  async function getDatabaseVersionSafe(args) {
38
38
  let migrate;
39
39
  let dbVersion;
40
40
  try {
41
- migrate = await import_chunk_MOFG2YPJ.Migrate.setup({});
41
+ migrate = await import_chunk_D6LYHB65.Migrate.setup({});
42
42
  dbVersion = await migrate.engine.getDatabaseVersion(args);
43
43
  } catch (e) {
44
44
  debug(e);
@@ -16,14 +16,15 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var chunk_ZRKC6FIA_exports = {};
20
- __export(chunk_ZRKC6FIA_exports, {
19
+ var chunk_O35BTK6Y_exports = {};
20
+ __export(chunk_O35BTK6Y_exports, {
21
21
  introspectSql: () => introspectSql
22
22
  });
23
- module.exports = __toCommonJS(chunk_ZRKC6FIA_exports);
24
- var import_chunk_MOFG2YPJ = require("./chunk-MOFG2YPJ.js");
23
+ module.exports = __toCommonJS(chunk_O35BTK6Y_exports);
24
+ var import_chunk_D6LYHB65 = require("./chunk-D6LYHB65.js");
25
+ var import_internals = require("@prisma/internals");
25
26
  var supportedProviders = ["postgresql", "cockroachdb", "mysql", "sqlite"];
26
- async function introspectSql(schemaContext, config, queries) {
27
+ async function introspectSql(schemaContext, queries) {
27
28
  if (!isTypedSqlEnabled(schemaContext.generators)) {
28
29
  throw new Error(`\`typedSql\` preview feature needs to be enabled in ${schemaContext.loadedFromPathForLogMessages}`);
29
30
  }
@@ -34,16 +35,19 @@ async function introspectSql(schemaContext, config, queries) {
34
35
  if (!supportedProviders.includes(firstDatasource.activeProvider)) {
35
36
  throw new Error(`Typed SQL is supported only for ${supportedProviders.join(", ")} providers`);
36
37
  }
37
- if (config.engine !== "classic") {
38
- throw new Error("TypedSQL currently requires classic engine");
38
+ const url = (0, import_internals.getEffectiveUrl)(firstDatasource).value;
39
+ if (!url) {
40
+ throw new Error(
41
+ `Could not get url from datasource ${firstDatasource.name} in ${schemaContext.loadedFromPathForLogMessages}`
42
+ );
39
43
  }
40
- const migrate = await import_chunk_MOFG2YPJ.Migrate.setup({ schemaContext, schemaEngineConfig: config });
44
+ const migrate = await import_chunk_D6LYHB65.Migrate.setup({ schemaContext });
41
45
  const schemaEngine = migrate.engine;
42
46
  const results = [];
43
47
  const errors = [];
44
48
  try {
45
49
  for (const query of queries) {
46
- const queryResult = await introspectSingleQuery(schemaEngine, config.datasource.url, query);
50
+ const queryResult = await introspectSingleQuery(schemaEngine, url, query);
47
51
  if (queryResult.ok) {
48
52
  results.push(queryResult.result);
49
53
  } else {
@@ -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_IABFQ4QV_exports = {};
30
- __export(chunk_IABFQ4QV_exports, {
29
+ var chunk_R4IWP35Z_exports = {};
30
+ __export(chunk_R4IWP35Z_exports, {
31
31
  MigrateStatus: () => MigrateStatus
32
32
  });
33
- module.exports = __toCommonJS(chunk_IABFQ4QV_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_MOFG2YPJ = require("./chunk-MOFG2YPJ.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");
@@ -48,7 +48,7 @@ Check the status of your database migrations
48
48
  ${(0, import_chunk_SKRR5WT4.bold)("Usage")}
49
49
 
50
50
  ${(0, import_chunk_SKRR5WT4.dim)("$")} prisma migrate status [options]
51
-
51
+
52
52
  ${(0, import_chunk_SKRR5WT4.bold)("Options")}
53
53
 
54
54
  -h, --help Display this help message
@@ -81,6 +81,7 @@ Check the status of your database migrations
81
81
  if (args["--help"]) {
82
82
  return this.help();
83
83
  }
84
+ await (0, import_internals.loadEnvFile)({ schemaPath: args["--schema"], printMessage: true, config });
84
85
  const schemaContext = await (0, import_internals.loadSchemaContext)({
85
86
  schemaPathFromArg: args["--schema"],
86
87
  schemaPathFromConfig: config.schema,
@@ -94,7 +95,7 @@ Check the status of your database migrations
94
95
  externalTables: config.tables?.external ?? [],
95
96
  externalEnums: config.enums?.external ?? []
96
97
  };
97
- const migrate = await import_chunk_MOFG2YPJ.Migrate.setup({
98
+ const migrate = await import_chunk_D6LYHB65.Migrate.setup({
98
99
  schemaEngineConfig: config,
99
100
  migrationsDirPath,
100
101
  schemaContext,
@@ -154,7 +155,7 @@ ${diagnoseResult.history.unpersistedMigrationNames.join("\n")}`);
154
155
  if (!diagnoseResult.hasMigrationsTable) {
155
156
  if (listMigrationDirectoriesResult.migrations.length === 0) {
156
157
  console.error(`The current database is not managed by Prisma Migrate.
157
-
158
+
158
159
  Read more about how to baseline an existing production database:
159
160
  ${(0, import_internals.link)("https://pris.ly/d/migrate-baseline")}`);
160
161
  process.exit(1);
@@ -181,7 +182,7 @@ During development if the failed migration(s) have not been deployed to a produc
181
182
  `
182
183
  );
183
184
  console.error(`The failed migration(s) can be marked as rolled back or applied:
184
-
185
+
185
186
  - If you rolled back the migration(s) manually:
186
187
  ${(0, import_chunk_SKRR5WT4.bold)((0, import_chunk_SKRR5WT4.green)((0, import_internals.getCommandWithExecutor)(`prisma migrate resolve --rolled-back "${failedMigrations[0]}"`)))}
187
188
 
@@ -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
+ }