@nocobase/app-server 5.0.0-beta.2 → 5.0.0-beta.3

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/README.md +4 -0
  2. package/dist/database/index.d.ts +4 -1
  3. package/dist/database/index.d.ts.map +1 -1
  4. package/dist/database/index.js +3 -0
  5. package/dist/database/index.js.map +1 -1
  6. package/dist/database/migrator.d.ts +5 -0
  7. package/dist/database/migrator.d.ts.map +1 -1
  8. package/dist/database/migrator.js +2 -1
  9. package/dist/database/migrator.js.map +1 -1
  10. package/dist/database/plan.d.ts.map +1 -1
  11. package/dist/database/plan.js +9 -2
  12. package/dist/database/plan.js.map +1 -1
  13. package/dist/database/provider.d.ts.map +1 -1
  14. package/dist/database/provider.js +9 -2
  15. package/dist/database/provider.js.map +1 -1
  16. package/dist/database/seeder.d.ts +5 -0
  17. package/dist/database/seeder.d.ts.map +1 -1
  18. package/dist/database/seeder.js +2 -1
  19. package/dist/database/seeder.js.map +1 -1
  20. package/dist/database/task-hooks.d.ts +19 -0
  21. package/dist/database/task-hooks.d.ts.map +1 -0
  22. package/dist/database/task-hooks.js +22 -0
  23. package/dist/database/task-hooks.js.map +1 -0
  24. package/dist/database/tasks.d.ts +34 -4
  25. package/dist/database/tasks.d.ts.map +1 -1
  26. package/dist/database/tasks.js +182 -46
  27. package/dist/database/tasks.js.map +1 -1
  28. package/dist/database/types.d.ts +5 -0
  29. package/dist/database/types.d.ts.map +1 -1
  30. package/dist/plugins/define.d.ts.map +1 -1
  31. package/dist/plugins/define.js +8 -1
  32. package/dist/plugins/define.js.map +1 -1
  33. package/dist/plugins/inspect.d.ts +2 -0
  34. package/dist/plugins/inspect.d.ts.map +1 -1
  35. package/dist/plugins/inspect.js +69 -44
  36. package/dist/plugins/inspect.js.map +1 -1
  37. package/dist/plugins/resolve.d.ts.map +1 -1
  38. package/dist/plugins/resolve.js +36 -0
  39. package/dist/plugins/resolve.js.map +1 -1
  40. package/dist/plugins/types.d.ts +10 -1
  41. package/dist/plugins/types.d.ts.map +1 -1
  42. package/package.json +2 -2
@@ -1,5 +1,7 @@
1
+ import { databaseTaskHooksToken } from './task-hooks.js';
1
2
  import { createTaskServiceResolver } from './task-container.js';
2
3
  import { loggingToken } from '../logging/token.js';
4
+ import { createServiceToken, } from '@nocobase/service-provider';
3
5
  import { snapshotDatabaseTaskConfig } from './task-config.js';
4
6
  import { resolveDatabaseConfig } from './resolve-config.js';
5
7
  import { planAppDatabaseTasks, } from './plan.js';
@@ -10,15 +12,40 @@ import { createAppSeeder } from './seeder.js';
10
12
  import { appDatabaseStorageExists, prepareAppDatabaseStorage, } from './storage.js';
11
13
  export class AppDatabaseTaskError extends Error {
12
14
  result;
13
- constructor(result, cause) {
15
+ preparation;
16
+ resetConnections;
17
+ /** Secondary owned-manager cleanup failure; preparation remains the primary error. */
18
+ cleanupError;
19
+ constructor(result, cause, preparation = undefined, resetConnections = []) {
14
20
  const failed = result.results.find((entry) => entry.status === 'failed');
15
- super(`Database ${failed?.kind} failed for connection "${failed?.connection}": ${cause instanceof Error ? cause.message : String(cause)}`, { cause });
21
+ const location = preparation
22
+ ? `Database preparation (${preparation.phase}) failed${preparation.hook ? ` in hook "${preparation.hook}"` : ''}${preparation.connection ? ` for connection "${preparation.connection}"` : ''}`
23
+ : `Database ${failed?.kind} failed for connection "${failed?.connection}"`;
24
+ const resets = resetConnections.length
25
+ ? ` Connections already reset: ${resetConnections.map((name) => `"${name}"`).join(', ')}. These resets are not rolled back.`
26
+ : '';
27
+ const uncertain = preparation?.phase === 'reset'
28
+ ? ` Connection "${preparation.connection}" may also have been partially modified.`
29
+ : '';
30
+ super(`${location}: ${cause instanceof Error ? cause.message : String(cause)}${resets}${uncertain}`, { cause });
16
31
  this.result = result;
32
+ this.preparation = preparation;
33
+ this.resetConnections = resetConnections;
17
34
  this.name = 'AppDatabaseTaskError';
18
35
  }
19
36
  }
37
+ export const databaseTaskCoordinatorToken = createServiceToken('@nocobase/app-server/database/task-coordinator');
20
38
  /** Manual commands and startup share the same resolved, connection-bound plan. */
21
- export async function executeAppDatabasePlan(database, config, plan, { paths, drivers, fresh = false, force = false, operation = 'run', dryRun = false, runtimeConfig, container, } = {}) {
39
+ export async function executeAppDatabasePlan(database, config, plan, options = {}) {
40
+ const execute = (overrides = {}) => executeDatabasePlan(database, config, plan, { ...options, ...overrides });
41
+ const coordinator = options.container?.has(databaseTaskCoordinatorToken)
42
+ ? options.container.resolve(databaseTaskCoordinatorToken)
43
+ : undefined;
44
+ return coordinator
45
+ ? coordinator({ database, config, plan, options, execute })
46
+ : execute();
47
+ }
48
+ async function executeDatabasePlan(database, config, plan, { taskFilter, sample, paths, drivers, fresh = false, force = false, operation = 'run', dryRun = false, runtimeConfig, container, } = {}) {
22
49
  if (fresh) {
23
50
  if (operation !== 'run')
24
51
  throw new Error(`A fresh run cannot be combined with ${operation}.`);
@@ -40,25 +67,80 @@ export async function executeAppDatabasePlan(database, config, plan, { paths, dr
40
67
  if (operation === 'unlock' && dryRun) {
41
68
  throw new Error('An unlock has no dry run; it reports the lock it finds.');
42
69
  }
70
+ const targets = collectTaskTargets(config, plan, fresh, drivers);
43
71
  const taskContainer = createTaskServiceResolver(container);
44
72
  const taskConfig = snapshotDatabaseTaskConfig(runtimeConfig);
45
- // Decided before any task runs: the migrations a run applies would make
46
- // every database look installed by the time its seeds run.
47
- const freshInstalls = operation === 'run' && !dryRun
48
- ? await detectFreshInstalls(database, config, plan, {
49
- paths,
50
- drivers,
51
- fresh,
52
- runtimeConfig: taskConfig,
53
- container: taskContainer,
54
- })
55
- : new Map();
56
- const sampleData = taskConfig.get('app.sampleData') === true;
73
+ const resetConnections = [];
74
+ const hooks = !dryRun &&
75
+ targets.length > 0 &&
76
+ operation !== 'repair' &&
77
+ operation !== 'unlock' &&
78
+ container?.has(databaseTaskHooksToken)
79
+ ? container.resolve(databaseTaskHooksToken).snapshot()
80
+ : [];
57
81
  const result = {
58
82
  ok: true,
59
83
  status: 'completed',
60
84
  results: [],
61
85
  };
86
+ function preparationFailed(preparation, cause) {
87
+ result.ok = false;
88
+ result.status = 'failed';
89
+ result.results = plan.map((task) => unrunTask(task, 'preparation-failed'));
90
+ throw new AppDatabaseTaskError(result, cause, preparation, [
91
+ ...resetConnections,
92
+ ]);
93
+ }
94
+ // Previewing never prepares storage, even when it already exists.
95
+ if (!dryRun) {
96
+ for (const connection of targets) {
97
+ try {
98
+ await prepareAppDatabaseStorage(config, paths, [connection], drivers);
99
+ }
100
+ catch (cause) {
101
+ preparationFailed({ phase: 'storage', connection }, cause);
102
+ }
103
+ }
104
+ if (fresh) {
105
+ for (const connection of targets) {
106
+ try {
107
+ await database.connection(connection).resetManagedSchema();
108
+ resetConnections.push(connection);
109
+ }
110
+ catch (cause) {
111
+ preparationFailed({ phase: 'reset', connection }, cause);
112
+ }
113
+ }
114
+ }
115
+ }
116
+ const hookContext = Object.freeze({
117
+ resetConnections: Object.freeze([...resetConnections]),
118
+ });
119
+ for (const hook of hooks) {
120
+ try {
121
+ await hook.beforeTasks(hookContext);
122
+ }
123
+ catch (cause) {
124
+ preparationFailed({ phase: 'beforeTasks', hook: hook.name }, cause);
125
+ }
126
+ }
127
+ // Read installation history before any business migration or seed changes it.
128
+ let freshInstalls = new Map();
129
+ if (operation === 'run' && !dryRun) {
130
+ try {
131
+ freshInstalls = await detectFreshInstalls(database, config, plan, {
132
+ paths,
133
+ drivers,
134
+ fresh,
135
+ runtimeConfig: taskConfig,
136
+ container: taskContainer,
137
+ });
138
+ }
139
+ catch (cause) {
140
+ preparationFailed({ phase: 'installation' }, cause);
141
+ }
142
+ }
143
+ const sampleData = taskConfig.get('app.sampleData') === true;
62
144
  for (const [index, task] of plan.entries()) {
63
145
  const identity = { connection: task.connection, kind: task.kind };
64
146
  if (task.skipReason) {
@@ -75,9 +157,6 @@ export async function executeAppDatabasePlan(database, config, plan, { paths, dr
75
157
  // instead, without preparing storage or connecting.
76
158
  const storageMissing = dryRun &&
77
159
  !(await appDatabaseStorageExists(config, paths, task.connection, drivers));
78
- if (!storageMissing) {
79
- await prepareAppDatabaseStorage(config, paths, [task.connection], drivers);
80
- }
81
160
  const options = {
82
161
  runtimeConfig: taskConfig,
83
162
  container: taskContainer,
@@ -85,6 +164,7 @@ export async function executeAppDatabasePlan(database, config, plan, { paths, dr
85
164
  connection: task.connection,
86
165
  config: task.config,
87
166
  sources: task.config.sources,
167
+ taskFilter,
88
168
  onStaleLock: (takeover) => reportStaleLock(container, task, takeover),
89
169
  };
90
170
  const freshInstall = freshInstalls.get(task.connection);
@@ -105,13 +185,12 @@ export async function executeAppDatabasePlan(database, config, plan, { paths, dr
105
185
  ? await createAppMigrator(options).pending({ fresh })
106
186
  : await createAppSeeder(options).pending({ fresh })
107
187
  : task.kind === 'migrations'
108
- ? await (fresh
109
- ? createAppMigrator(options).fresh()
110
- : createAppMigrator(options).latest())
188
+ ? await runMigrations(options, fresh)
111
189
  : await createAppSeeder({
112
190
  ...options,
113
191
  sample: {
114
- enabled: freshInstall === true && sampleData,
192
+ enabled: sample?.enabled ??
193
+ (freshInstall === true && sampleData),
115
194
  },
116
195
  }).run();
117
196
  result.results.push({
@@ -133,17 +212,67 @@ export async function executeAppDatabasePlan(database, config, plan, { paths, dr
133
212
  status: 'failed',
134
213
  error: error instanceof Error ? error.message : String(error),
135
214
  });
136
- result.results.push(...plan.slice(index + 1).map((pending) => ({
137
- connection: pending.connection,
138
- kind: pending.kind,
139
- status: 'not-run',
140
- reason: 'previous-task-failed',
141
- })));
142
- throw new AppDatabaseTaskError(result, error);
215
+ result.results.push(...plan
216
+ .slice(index + 1)
217
+ .map((pending) => unrunTask(pending, 'previous-task-failed')));
218
+ throw new AppDatabaseTaskError(result, error, undefined, [
219
+ ...resetConnections,
220
+ ]);
143
221
  }
144
222
  }
145
223
  return result;
146
224
  }
225
+ /** Only target data is collected here; execution stays in the phase functions. */
226
+ function collectTaskTargets(config, plan, fresh, drivers) {
227
+ const targets = new Set();
228
+ const tasks = new Set();
229
+ for (const task of plan) {
230
+ if (task.skipReason)
231
+ continue;
232
+ const connection = config.connections[task.connection];
233
+ if (!connection)
234
+ throw new Error(`Unknown database connection "${task.connection}".`);
235
+ if (connection.schemaManagement === 'external') {
236
+ throw new Error(`Database connection "${task.connection}" is external; migrations and seeds are not supported.`);
237
+ }
238
+ const identity = `${task.connection}:${task.kind}`;
239
+ if (tasks.has(identity))
240
+ throw new Error(`Duplicate database task "${identity}".`);
241
+ tasks.add(identity);
242
+ targets.add(task.connection);
243
+ if (fresh && task.kind === 'migrations') {
244
+ const driver = resolveDatabaseDriver({
245
+ dialect: connection.dialect,
246
+ databaseDriver: connection.databaseDriver,
247
+ }, { ...config.drivers, ...drivers }, task.connection);
248
+ if (!driver?.resetManagedSchema) {
249
+ throw new Error(`Database driver for connection "${task.connection}" does not support managed schema reset.`);
250
+ }
251
+ }
252
+ }
253
+ return [...targets];
254
+ }
255
+ function unrunTask(task, reason) {
256
+ return {
257
+ connection: task.connection,
258
+ kind: task.kind,
259
+ status: task.skipReason ? 'skipped' : 'not-run',
260
+ reason: task.skipReason ?? reason,
261
+ };
262
+ }
263
+ async function runMigrations(options, fresh) {
264
+ const applied = await createAppMigrator(options).latest();
265
+ if (!fresh)
266
+ return applied;
267
+ // Rebuilding an empty schema is completed work even without migration sources.
268
+ return {
269
+ status: 'completed',
270
+ batch: applied.batch ?? 0,
271
+ executed: applied.executed ?? [],
272
+ skipped: applied.skipped ?? [],
273
+ ...(applied.warnings ? { warnings: applied.warnings } : {}),
274
+ };
275
+ }
147
276
  /**
148
277
  * Which connections this run installs: those with a seeds task whose storage
149
278
  * does not exist yet, or that hold neither seed history nor, when the plan
@@ -239,10 +368,8 @@ function reportStaleLock(container, task, takeover) {
239
368
  }, `Took over the ${task.kind} lock "${takeover.tableName}" after its holder stopped responding; the run holding it did not shut down cleanly.`);
240
369
  }
241
370
  /**
242
- * A fresh run drops a connection's managed schema inside its migrations task,
243
- * so every other task on that connection has to come after it. The planner
244
- * already orders tasks this way; the check guards hand-built plans, which
245
- * would otherwise seed a database that is about to be emptied.
371
+ * A fresh plan must include migrations for every executable connection, with
372
+ * migrations before seeds. Validate hand-built plans before any storage write.
246
373
  */
247
374
  function assertFreshPlanOrder(plan) {
248
375
  const rebuilt = new Set();
@@ -277,18 +404,7 @@ export async function runAppDatabaseTasks(config, options) {
277
404
  if (!plan.length)
278
405
  return { ok: true, status: 'not-configured', results: [] };
279
406
  if (options.fresh) {
280
- for (const task of plan) {
281
- if (task.skipReason)
282
- continue;
283
- const connection = config.connections[task.connection];
284
- const driver = resolveDatabaseDriver({
285
- dialect: connection.dialect,
286
- databaseDriver: connection.databaseDriver,
287
- }, { ...config.drivers, ...drivers }, task.connection);
288
- if (!driver?.resetManagedSchema) {
289
- throw new Error(`Database driver for connection "${task.connection}" does not support managed schema reset.`);
290
- }
291
- }
407
+ collectTaskTargets(config, plan, true, drivers);
292
408
  if (!options.dryRun &&
293
409
  options.confirmFresh &&
294
410
  !(await options.confirmFresh(plan))) {
@@ -303,8 +419,10 @@ export async function runAppDatabaseTasks(config, options) {
303
419
  });
304
420
  if (!database)
305
421
  return { ok: true, status: 'not-configured', results: [] };
422
+ let executionFailure;
306
423
  try {
307
424
  return await executeAppDatabasePlan(database, config, plan, {
425
+ contributions: options.contributions,
308
426
  paths,
309
427
  drivers,
310
428
  fresh: options.fresh,
@@ -315,9 +433,27 @@ export async function runAppDatabaseTasks(config, options) {
315
433
  container: options.container,
316
434
  });
317
435
  }
436
+ catch (error) {
437
+ executionFailure = error;
438
+ throw error;
439
+ }
318
440
  finally {
319
441
  if (!options.database)
320
- await database.destroy();
442
+ await destroyTaskDatabase(database, executionFailure);
443
+ }
444
+ }
445
+ async function destroyTaskDatabase(database, executionFailure) {
446
+ try {
447
+ await database.destroy();
448
+ }
449
+ catch (cleanupError) {
450
+ if (executionFailure instanceof AppDatabaseTaskError &&
451
+ executionFailure.preparation) {
452
+ executionFailure.cleanupError = cleanupError;
453
+ }
454
+ else {
455
+ throw cleanupError;
456
+ }
321
457
  }
322
458
  }
323
459
  export async function runAppMigrations(config, options) {
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/database/tasks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/database/tasks.ts"],"names":[],"mappings":"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"}
@@ -39,6 +39,11 @@ export type AppDatabaseConfigFromDrivers<TDrivers extends Record<string, Databas
39
39
  */
40
40
  export interface AppDatabaseTaskContributions {
41
41
  readonly appPackageName: string;
42
+ /** Contributions bound to named App connections, independent of the default connection. */
43
+ readonly connections?: Readonly<Record<string, {
44
+ readonly migrations: readonly MigrationSource[];
45
+ readonly seeds: readonly SeedSource[];
46
+ }>>;
42
47
  readonly migrations: readonly MigrationSource[];
43
48
  readonly seeds: readonly SeedSource[];
44
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/database/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/database/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"define.d.ts","sourceRoot":"","sources":["../../src/plugins/define.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,eAAe,EACf,yBAAyB,EACzB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAIpB,wBAAgB,kBAAkB,CAAC,OAAO,GAAG,MAAM,EACjD,UAAU,EAAE,yBAAyB,CAAC,OAAO,CAAC,GAC7C,eAAe,CAAC,OAAO,CAAC,CA8B1B;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,SAAS,eAAe,EAAE,GAClC,gBAAgB,CAYlB"}
1
+ {"version":3,"file":"define.d.ts","sourceRoot":"","sources":["../../src/plugins/define.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,eAAe,EACf,yBAAyB,EACzB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAIpB,wBAAgB,kBAAkB,CAAC,OAAO,GAAG,MAAM,EACjD,UAAU,EAAE,yBAAyB,CAAC,OAAO,CAAC,GAC7C,eAAe,CAAC,OAAO,CAAC,CA2C1B;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,SAAS,eAAe,EAAE,GAClC,gBAAgB,CAYlB"}
@@ -12,7 +12,14 @@ export function defineServerPlugin(definition) {
12
12
  serviceProviders: Object.freeze([...(definition.serviceProviders ?? [])]),
13
13
  routes: Object.freeze([...(definition.routes ?? [])]),
14
14
  database: definition.database
15
- ? Object.freeze({ ...definition.database })
15
+ ? Object.freeze({
16
+ ...definition.database,
17
+ ...(definition.database.connections
18
+ ? {
19
+ connections: Object.freeze(Object.fromEntries(Object.entries(definition.database.connections).map(([name, config]) => [name, Object.freeze({ ...config })]))),
20
+ }
21
+ : {}),
22
+ })
16
23
  : undefined,
17
24
  queue: definition.queue
18
25
  ? Object.freeze({
@@ -1 +1 @@
1
- {"version":3,"file":"define.js","sourceRoot":"","sources":["../../src/plugins/define.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAQ7B,MAAM,oBAAoB,GAAG,2CAA2C,CAAC;AAEzE,MAAM,UAAU,kBAAkB,CAChC,UAA8C;IAE9C,MAAM,WAAW,GAAG,oBAAoB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAEjE,IACE,OAAO,UAAU,CAAC,OAAO,KAAK,QAAQ;QACtC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,EACpC,CAAC;QACD,MAAM,IAAI,KAAK,CACb,kBAAkB,WAAW,wGAAwG,CACtI,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,WAAW;QACX,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC;QAC3C,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,CAAC;QACzE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;QACrD,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC3B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC3C,CAAC,CAAC,SAAS;QACb,KAAK,EAAE,UAAU,CAAC,KAAK;YACrB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;gBACZ,GAAG,UAAU,CAAC,KAAK;gBACnB,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI;oBACzB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC3C,CAAC,CAAC,SAAS;aACd,CAAC;YACJ,CAAC,CAAC,SAAS;QACb,OAAO,EAAE,UAAU,CAAC,OAAO;KAC5B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,OAAmC;IAEnC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CACb,kBAAkB,MAAM,CAAC,WAAW,iCAAiC,CACtE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,oBAAoB,CAAC,WAAmB;IAC/C,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IACtC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CACb,+BAA+B,WAAW,wCAAwC,CACnF,CAAC;IACJ,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"define.js","sourceRoot":"","sources":["../../src/plugins/define.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,8 @@ export interface AppServerLocalesSnapshot {
25
25
  readonly packageName: string;
26
26
  }
27
27
  export interface AppServerDatabaseSnapshot {
28
+ /** Absent for legacy default-connection contributions. */
29
+ readonly connection?: string;
28
30
  readonly packageName: string;
29
31
  readonly migrations?: {
30
32
  readonly configured: string;
@@ -1 +1 @@
1
- {"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../src/plugins/inspect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../src/plugins/inspect.ts"],"names":[],"mappings":"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"}
@@ -41,48 +41,73 @@ export function inspectResolvedAppServerPlugins(resolved) {
41
41
  scope: route.scope,
42
42
  });
43
43
  });
44
- const configuredMigrations = plugin.definition.database?.migrations;
45
- const configuredSeeds = plugin.definition.database?.seeds;
46
- if (configuredMigrations || configuredSeeds) {
47
- database.push({
48
- packageName: plugin.metadata.packageName,
49
- ...(configuredMigrations
50
- ? {
51
- migrations: {
52
- configured: configuredMigrations,
53
- ...(plugin.metadata.migrationsDirectory
54
- ? { resolved: plugin.metadata.migrationsDirectory }
55
- : {}),
56
- },
57
- }
58
- : {}),
59
- ...(configuredSeeds
60
- ? {
61
- seeds: {
62
- configured: configuredSeeds,
63
- ...(plugin.metadata.seedsDirectory
64
- ? { resolved: plugin.metadata.seedsDirectory }
65
- : {}),
66
- },
67
- }
68
- : {}),
69
- });
70
- }
71
- if (configuredMigrations && !plugin.metadata.migrationsDirectory) {
72
- issues.push({
73
- code: 'SERVER_MIGRATIONS_DIRECTORY_MISSING',
74
- severity: 'error',
75
- packageName: plugin.metadata.packageName,
76
- message: `${plugin.metadata.packageName} declares migrations at ${path.resolve(plugin.metadata.baseDir, configuredMigrations)}, but the directory could not be resolved.`,
77
- });
78
- }
79
- if (configuredSeeds && !plugin.metadata.seedsDirectory) {
80
- issues.push({
81
- code: 'SERVER_SEEDS_DIRECTORY_MISSING',
82
- severity: 'error',
83
- packageName: plugin.metadata.packageName,
84
- message: `${plugin.metadata.packageName} declares seeds at ${path.resolve(plugin.metadata.baseDir, configuredSeeds)}, but the directory could not be resolved.`,
85
- });
44
+ const databaseEntries = [
45
+ {
46
+ connection: undefined,
47
+ definition: plugin.definition.database,
48
+ metadata: plugin.metadata,
49
+ },
50
+ ...Object.entries(plugin.definition.database?.connections ?? {}).map(([connection, definition]) => ({
51
+ connection,
52
+ definition: {
53
+ migrations: definition.migrations ?? `./database/${connection}/migrations`,
54
+ seeds: definition.seeds ?? `./database/${connection}/seeds`,
55
+ },
56
+ metadata: plugin.metadata.connections?.[connection],
57
+ })),
58
+ ];
59
+ for (const entry of databaseEntries) {
60
+ const configuredMigrations = entry.definition?.migrations;
61
+ const configuredSeeds = entry.definition?.seeds;
62
+ if (configuredMigrations || configuredSeeds) {
63
+ database.push({
64
+ packageName: plugin.metadata.packageName,
65
+ ...(entry.connection ? { connection: entry.connection } : {}),
66
+ ...(configuredMigrations
67
+ ? {
68
+ migrations: {
69
+ configured: configuredMigrations,
70
+ ...(entry.metadata?.migrationsDirectory
71
+ ? { resolved: entry.metadata?.migrationsDirectory }
72
+ : {}),
73
+ },
74
+ }
75
+ : {}),
76
+ ...(configuredSeeds
77
+ ? {
78
+ seeds: {
79
+ configured: configuredSeeds,
80
+ ...(entry.metadata?.seedsDirectory
81
+ ? { resolved: entry.metadata?.seedsDirectory }
82
+ : {}),
83
+ },
84
+ }
85
+ : {}),
86
+ });
87
+ }
88
+ if (configuredMigrations &&
89
+ !entry.metadata?.migrationsDirectory &&
90
+ (entry.connection === undefined ||
91
+ plugin.definition.database?.connections?.[entry.connection]
92
+ ?.migrations)) {
93
+ issues.push({
94
+ code: 'SERVER_MIGRATIONS_DIRECTORY_MISSING',
95
+ severity: 'error',
96
+ packageName: plugin.metadata.packageName,
97
+ message: `${plugin.metadata.packageName} declares migrations at ${path.resolve(plugin.metadata.baseDir, configuredMigrations)}, but the directory could not be resolved.`,
98
+ });
99
+ }
100
+ if (configuredSeeds &&
101
+ !entry.metadata?.seedsDirectory &&
102
+ (entry.connection === undefined ||
103
+ plugin.definition.database?.connections?.[entry.connection]?.seeds)) {
104
+ issues.push({
105
+ code: 'SERVER_SEEDS_DIRECTORY_MISSING',
106
+ severity: 'error',
107
+ packageName: plugin.metadata.packageName,
108
+ message: `${plugin.metadata.packageName} declares seeds at ${path.resolve(plugin.metadata.baseDir, configuredSeeds)}, but the directory could not be resolved.`,
109
+ });
110
+ }
86
111
  }
87
112
  const configuredJobs = plugin.definition.queue?.jobs ?? [];
88
113
  if (plugin.definition.queue) {
@@ -107,8 +132,8 @@ export function inspectResolvedAppServerPlugins(resolved) {
107
132
  serviceProviders: plugin.definition.serviceProviders.length,
108
133
  routes: plugin.definition.routes.length,
109
134
  locales: plugin.definition.locales !== undefined,
110
- migrations: configuredMigrations !== undefined,
111
- seeds: configuredSeeds !== undefined,
135
+ migrations: databaseEntries.some((entry) => entry.definition?.migrations !== undefined),
136
+ seeds: databaseEntries.some((entry) => entry.definition?.seeds !== undefined),
112
137
  jobLocations: configuredJobs.length,
113
138
  },
114
139
  };
@@ -1 +1 @@
1
- {"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../src/plugins/inspect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../src/plugins/inspect.ts"],"names":[],"mappings":"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"}