velocious 1.0.580 → 1.0.581
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/build/cli/command-arguments.js +45 -0
- package/build/cli/index.js +10 -0
- package/build/configuration-types.js +1 -0
- package/build/database/generation-context.js +121 -0
- package/build/database/initializer-from-require-context.js +7 -0
- package/build/environment-handlers/node/cli/commands/db/schema/dump.js +25 -0
- package/build/environment-handlers/node/cli/commands/db/schema/load.js +37 -8
- package/build/environment-handlers/node/cli/commands/generate/base-models.js +82 -13
- package/build/src/cli/command-arguments.d.ts +27 -0
- package/build/src/cli/command-arguments.d.ts.map +1 -0
- package/build/src/cli/command-arguments.js +38 -0
- package/build/src/cli/index.d.ts.map +1 -1
- package/build/src/cli/index.js +9 -1
- package/build/src/configuration-types.d.ts +8 -0
- package/build/src/configuration-types.d.ts.map +1 -1
- package/build/src/configuration-types.js +2 -1
- package/build/src/database/generation-context.d.ts +62 -0
- package/build/src/database/generation-context.d.ts.map +1 -0
- package/build/src/database/generation-context.js +102 -0
- package/build/src/database/initializer-from-require-context.d.ts.map +1 -1
- package/build/src/database/initializer-from-require-context.js +6 -1
- package/build/src/environment-handlers/node/cli/commands/db/schema/dump.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/db/schema/dump.js +22 -1
- package/build/src/environment-handlers/node/cli/commands/db/schema/load.d.ts +11 -0
- package/build/src/environment-handlers/node/cli/commands/db/schema/load.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/db/schema/load.js +33 -7
- package/build/src/environment-handlers/node/cli/commands/generate/base-models.d.ts +14 -0
- package/build/src/environment-handlers/node/cli/commands/generate/base-models.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/generate/base-models.js +371 -308
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/cli/command-arguments.js +45 -0
- package/src/cli/index.js +10 -0
- package/src/configuration-types.js +1 -0
- package/src/database/generation-context.js +121 -0
- package/src/database/initializer-from-require-context.js +7 -0
- package/src/environment-handlers/node/cli/commands/db/schema/dump.js +25 -0
- package/src/environment-handlers/node/cli/commands/db/schema/load.js +37 -8
- package/src/environment-handlers/node/cli/commands/generate/base-models.js +82 -13
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
import Tenant from "../tenants/tenant.js";
|
|
3
|
+
/**
|
|
4
|
+
* Immutable selection of one logical tenant database and one provider-resolved
|
|
5
|
+
* physical tenant. Schema tools can share this contract without ambient or
|
|
6
|
+
* process-global selection state.
|
|
7
|
+
*/
|
|
8
|
+
export default class DatabaseGenerationContext {
|
|
9
|
+
/**
|
|
10
|
+
* Resolves one tenant-only database from its provider and captures its physical identity.
|
|
11
|
+
* @param {object} args - Selection arguments.
|
|
12
|
+
* @param {import("../configuration.js").default} args.configuration - Owning configuration.
|
|
13
|
+
* @param {string} args.databaseIdentifier - Logical tenant-only database identifier.
|
|
14
|
+
* @returns {Promise<DatabaseGenerationContext>} - Immutable selected database context.
|
|
15
|
+
*/
|
|
16
|
+
static async resolve({ configuration, databaseIdentifier }) {
|
|
17
|
+
const databaseConfiguration = configuration.getDatabaseConfiguration()[databaseIdentifier];
|
|
18
|
+
if (!databaseConfiguration) {
|
|
19
|
+
throw new Error(`No such tenant database identifier configured: ${databaseIdentifier}`);
|
|
20
|
+
}
|
|
21
|
+
if (!databaseConfiguration.tenantOnly) {
|
|
22
|
+
throw new Error(`Database identifier ${databaseIdentifier} is not configured with tenantOnly: true`);
|
|
23
|
+
}
|
|
24
|
+
if (configuration.getDisabledDatabaseIdentifiers().has(databaseIdentifier)) {
|
|
25
|
+
throw new Error(`Tenant database identifier ${databaseIdentifier} is disabled by VELOCIOUS_DISABLED_DATABASE_IDENTIFIERS`);
|
|
26
|
+
}
|
|
27
|
+
const provider = configuration.getTenantDatabaseProvider(databaseIdentifier);
|
|
28
|
+
await configuration.initialize({ type: "database-generation" });
|
|
29
|
+
const tenants = await configuration.ensureConnections({ name: `Resolve database generation context: ${databaseIdentifier}` }, async () => {
|
|
30
|
+
if (provider.resolveGenerationTenant) {
|
|
31
|
+
const tenant = await provider.resolveGenerationTenant({ configuration, identifier: databaseIdentifier });
|
|
32
|
+
return tenant === undefined ? [] : [tenant];
|
|
33
|
+
}
|
|
34
|
+
return await provider.listTenants({ configuration, identifier: databaseIdentifier });
|
|
35
|
+
});
|
|
36
|
+
if (!Array.isArray(tenants)) {
|
|
37
|
+
throw new Error(`Tenant database provider for ${databaseIdentifier} must return an array from listTenants`);
|
|
38
|
+
}
|
|
39
|
+
if (tenants.length === 0) {
|
|
40
|
+
throw new Error(`Tenant database selection ${databaseIdentifier} resolved no tenants`);
|
|
41
|
+
}
|
|
42
|
+
if (tenants.length !== 1) {
|
|
43
|
+
throw new Error(`Tenant database selection ${databaseIdentifier} is ambiguous: provider returned ${tenants.length} tenants`);
|
|
44
|
+
}
|
|
45
|
+
const tenant = tenants[0];
|
|
46
|
+
if (!tenant || typeof tenant !== "object" || Array.isArray(tenant)) {
|
|
47
|
+
throw new Error(`Tenant database selection ${databaseIdentifier} returned an invalid tenant descriptor`);
|
|
48
|
+
}
|
|
49
|
+
const handle = Tenant.handle(tenant, configuration);
|
|
50
|
+
// Resolve now so an inactive/stale descriptor fails before a selected
|
|
51
|
+
// schema connection can be checked out or read.
|
|
52
|
+
handle.databaseConfiguration(databaseIdentifier);
|
|
53
|
+
return new DatabaseGenerationContext({ configuration, databaseIdentifier, handle });
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Runs constructor.
|
|
57
|
+
* @param {object} args - Captured selection.
|
|
58
|
+
* @param {import("../configuration.js").default} args.configuration - Owning configuration.
|
|
59
|
+
* @param {string} args.databaseIdentifier - Logical database identifier.
|
|
60
|
+
* @param {ReturnType<typeof Tenant.handle>} args.handle - Captured tenant handle.
|
|
61
|
+
*/
|
|
62
|
+
constructor({ configuration, databaseIdentifier, handle }) {
|
|
63
|
+
this._configuration = configuration;
|
|
64
|
+
this._databaseIdentifier = databaseIdentifier;
|
|
65
|
+
this._handle = handle;
|
|
66
|
+
Object.freeze(this);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Returns the captured logical database identifier.
|
|
70
|
+
* @returns {string} - Captured logical database identifier.
|
|
71
|
+
*/
|
|
72
|
+
databaseIdentifier() { return this._databaseIdentifier; }
|
|
73
|
+
/**
|
|
74
|
+
* Returns the captured physical database configuration.
|
|
75
|
+
* @returns {import("../configuration-types.js").DatabaseConfigurationType} - Captured physical database configuration.
|
|
76
|
+
*/
|
|
77
|
+
databaseConfiguration() { return this._handle.databaseConfiguration(this._databaseIdentifier); }
|
|
78
|
+
/**
|
|
79
|
+
* Returns the captured tenant descriptor.
|
|
80
|
+
* @returns {ReturnType<ReturnType<typeof Tenant.handle>["tenant"]>} - Captured immutable tenant descriptor.
|
|
81
|
+
*/
|
|
82
|
+
tenant() { return this._handle.tenant(); }
|
|
83
|
+
/**
|
|
84
|
+
* Runs work on one connection pinned to the captured physical database.
|
|
85
|
+
* @template T
|
|
86
|
+
* @param {object} args - Work arguments.
|
|
87
|
+
* @param {(connection: import("./drivers/base.js").default) => Promise<T>} args.callback - Selected database work.
|
|
88
|
+
* @param {string} args.name - Checkout name.
|
|
89
|
+
* @returns {Promise<T>} - Callback result.
|
|
90
|
+
*/
|
|
91
|
+
async run({ callback, name }) {
|
|
92
|
+
return await this._configuration.runWithTenant(this.tenant(), async () => {
|
|
93
|
+
return await this._configuration.withDatabaseOperation({
|
|
94
|
+
databaseConfiguration: this.databaseConfiguration(),
|
|
95
|
+
databaseIdentifier: this.databaseIdentifier(),
|
|
96
|
+
name,
|
|
97
|
+
tenant: this.tenant()
|
|
98
|
+
}, async (operation) => await callback(operation.connection()));
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGlvbi1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RhdGFiYXNlL2dlbmVyYXRpb24tY29udGV4dC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxNQUFNLE1BQU0sc0JBQXNCLENBQUE7QUFFekM7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8seUJBQXlCO0lBQzVDOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUMsYUFBYSxFQUFFLGtCQUFrQixFQUFDO1FBQ3RELE1BQU0scUJBQXFCLEdBQUcsYUFBYSxDQUFDLHdCQUF3QixFQUFFLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtRQUUxRixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxrQkFBa0IsRUFBRSxDQUFDLENBQUE7UUFDekYsQ0FBQztRQUNELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN0QyxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixrQkFBa0IsMENBQTBDLENBQUMsQ0FBQTtRQUN0RyxDQUFDO1FBQ0QsSUFBSSxhQUFhLENBQUMsOEJBQThCLEVBQUUsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDO1lBQzNFLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLGtCQUFrQix5REFBeUQsQ0FBQyxDQUFBO1FBQzVILENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxhQUFhLENBQUMseUJBQXlCLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtRQUU1RSxNQUFNLGFBQWEsQ0FBQyxVQUFVLENBQUMsRUFBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUMsQ0FBQyxDQUFBO1FBRTdELE1BQU0sT0FBTyxHQUFHLE1BQU0sYUFBYSxDQUFDLGlCQUFpQixDQUFDLEVBQUMs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LEVBQUU7WUFDdkUsT0FBTyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMscUJBQXFCLENBQUM7Z0JBQ3JELHFCQUFxQixFQUFFLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtnQkFDbkQsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFO2dCQUM3QyxJQUFJO2dCQUNKLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFO2FBQ3RCLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxFQUFFLENBQUMsTUFBTSxRQUFRLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUNqRSxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgVGVuYW50IGZyb20gXCIuLi90ZW5hbnRzL3RlbmFudC5qc1wiXG5cbi8qKlxuICogSW1tdXRhYmxlIHNlbGVjdGlvbiBvZiBvbmUgbG9naWNhbCB0ZW5hbnQgZGF0YWJhc2UgYW5kIG9uZSBwcm92aWRlci1yZXNvbHZlZFxuICogcGh5c2ljYWwgdGVuYW50LiBTY2hlbWEgdG9vbHMgY2FuIHNoYXJlIHRoaXMgY29udHJhY3Qgd2l0aG91dCBhbWJpZW50IG9yXG4gKiBwcm9jZXNzLWdsb2JhbCBzZWxlY3Rpb24gc3RhdGUuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERhdGFiYXNlR2VuZXJhdGlvbkNvbnRleHQge1xuICAvKipcbiAgICogUmVzb2x2ZXMgb25lIHRlbmFudC1vbmx5IGRhdGFiYXNlIGZyb20gaXRzIHByb3ZpZGVyIGFuZCBjYXB0dXJlcyBpdHMgcGh5c2ljYWwgaWRlbnRpdHkuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gU2VsZWN0aW9uIGFyZ3VtZW50cy5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHR9IGFyZ3MuY29uZmlndXJhdGlvbiAtIE93bmluZyBjb25maWd1cmF0aW9uLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXJncy5kYXRhYmFzZUlkZW50aWZpZXIgLSBMb2dpY2FsIHRlbmFudC1vbmx5IGRhdGFiYXNlIGlkZW50aWZpZXIuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPERhdGFiYXNlR2VuZXJhdGlvbkNvbnRleHQ+fSAtIEltbXV0YWJsZSBzZWxlY3RlZCBkYXRhYmFzZSBjb250ZXh0LlxuICAgKi9cbiAgc3RhdGljIGFzeW5jIHJlc29sdmUoe2NvbmZpZ3VyYXRpb24sIGRhdGFiYXNlSWRlbnRpZmllcn0pIHtcbiAgICBjb25zdCBkYXRhYmFzZUNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uLmdldERhdGFiYXNlQ29uZmlndXJhdGlvbigpW2RhdGFiYXNlSWRlbnRpZmllcl1cblxuICAgIGlmICghZGF0YWJhc2VDb25maWd1cmF0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIHN1Y2ggdGVuYW50IGRhdGFiYXNlIGlkZW50aWZpZXIgY29uZmlndXJlZDogJHtkYXRhYmFzZUlkZW50aWZpZXJ9YClcbiAgICB9XG4gICAgaWYgKCFkYXRhYmFzZUNvbmZpZ3VyYXRpb24udGVuYW50T25seSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBEYXRhYmFzZSBpZGVudGlmaWVyICR7ZGF0YWJhc2VJZGVudGlmaWVyfSBpcyBub3QgY29uZmlndXJlZCB3aXRoIHRlbmFudE9ubHk6IHRydWVgKVxuICAgIH1cbiAgICBpZiAoY29uZmlndXJhdGlvbi5nZXREaXNhYmxlZERhdGFiYXNlSWRlbnRpZmllcnMoKS5oYXMoZGF0YWJhc2VJZGVudGlmaWVyKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUZW5hbnQgZGF0YWJhc2UgaWRlbnRpZmllciAke2RhdGFiYXNlSWRlbnRpZmllcn0gaXMgZGlzYWJsZWQgYnkgVkVMT0NJT1VTX0RJU0FCTEVEX0RBVEFCQVNFX0lERU5USUZJRVJTYClcbiAgICB9XG5cbiAgICBjb25zdCBwcm92aWRlciA9IGNvbmZpZ3VyYXRpb24uZ2V0VGVuYW50RGF0YWJhc2VQcm92aWRlcihkYXRhYmFzZUlkZW50aWZpZXIpXG5cbiAgICBhd2FpdCBjb25maWd1cmF0aW9uLmluaXRpYWxpemUoe3R5cGU6IFwiZGF0YWJhc2UtZ2VuZXJhdGlvblwifSlcblxuICAgIGNvbnN0IHRlbmFudHMgPSBhd2FpdCBjb25maWd1cmF0aW9uLmVuc3VyZUNvbm5lY3Rpb25zKHtuYW1lOiBgUmVzb2x2ZSBkYXRhYmFzZSBnZW5lcmF0aW9uIGNvbnRleHQ6ICR7ZGF0YWJhc2VJZGVudGlmaWVyfWB9LCBhc3luYyAoKSA9PiB7XG4gICAgICBpZiAocHJvdmlkZXIucmVzb2x2ZUdlbmVyYXRpb25UZW5hbnQpIHtcbiAgICAgICAgY29uc3QgdGVuYW50ID0gYXdhaXQgcHJvdmlkZXIucmVzb2x2ZUdlbmVyYXRpb25UZW5hbnQoe2NvbmZpZ3VyYXRpb24sIGlkZW50aWZpZXI6IGRhdGFiYXNlSWRlbnRpZmllcn0pXG5cbiAgICAgICAgcmV0dXJuIHRlbmFudCA9PT0gdW5kZWZpbmVkID8gW10gOiBbdGVuYW50XVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gYXdhaXQgcHJvdmlkZXIubGlzdFRlbmFudHMoe2NvbmZpZ3VyYXRpb24sIGlkZW50aWZpZXI6IGRhdGFiYXNlSWRlbnRpZmllcn0pXG4gICAgfSlcblxuICAgIGlmICghQXJyYXkuaXNBcnJheSh0ZW5hbnRzKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUZW5hbnQgZGF0YWJhc2UgcHJvdmlkZXIgZm9yICR7ZGF0YWJhc2VJZGVudGlmaWVyfSBtdXN0IHJldHVybiBhbiBhcnJheSBmcm9tIGxpc3RUZW5hbnRzYClcbiAgICB9XG4gICAgaWYgKHRlbmFudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFRlbmFudCBkYXRhYmFzZSBzZWxlY3Rpb24gJHtkYXRhYmFzZUlkZW50aWZpZXJ9IHJlc29sdmVkIG5vIHRlbmFudHNgKVxuICAgIH1cbiAgICBpZiAodGVuYW50cy5sZW5ndGggIT09IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGVuYW50IGRhdGFiYXNlIHNlbGVjdGlvbiAke2RhdGFiYXNlSWRlbnRpZmllcn0gaXMgYW1iaWd1b3VzOiBwcm92aWRlciByZXR1cm5lZCAke3RlbmFudHMubGVuZ3RofSB0ZW5hbnRzYClcbiAgICB9XG5cbiAgICBjb25zdCB0ZW5hbnQgPSB0ZW5hbnRzWzBdXG5cbiAgICBpZiAoIXRlbmFudCB8fCB0eXBlb2YgdGVuYW50ICE9PSBcIm9iamVjdFwiIHx8IEFycmF5LmlzQXJyYXkodGVuYW50KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUZW5hbnQgZGF0YWJhc2Ugc2VsZWN0aW9uICR7ZGF0YWJhc2VJZGVudGlmaWVyfSByZXR1cm5lZCBhbiBpbnZhbGlkIHRlbmFudCBkZXNjcmlwdG9yYClcbiAgICB9XG5cbiAgICBjb25zdCBoYW5kbGUgPSBUZW5hbnQuaGFuZGxlKHRlbmFudCwgY29uZmlndXJhdGlvbilcblxuICAgIC8vIFJlc29sdmUgbm93IHNvIGFuIGluYWN0aXZlL3N0YWxlIGRlc2NyaXB0b3IgZmFpbHMgYmVmb3JlIGEgc2VsZWN0ZWRcbiAgICAvLyBzY2hlbWEgY29ubmVjdGlvbiBjYW4gYmUgY2hlY2tlZCBvdXQgb3IgcmVhZC5cbiAgICBoYW5kbGUuZGF0YWJhc2VDb25maWd1cmF0aW9uKGRhdGFiYXNlSWRlbnRpZmllcilcblxuICAgIHJldHVybiBuZXcgRGF0YWJhc2VHZW5lcmF0aW9uQ29udGV4dCh7Y29uZmlndXJhdGlvbiwgZGF0YWJhc2VJZGVudGlmaWVyLCBoYW5kbGV9KVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgY29uc3RydWN0b3IuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gQ2FwdHVyZWQgc2VsZWN0aW9uLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gYXJncy5jb25maWd1cmF0aW9uIC0gT3duaW5nIGNvbmZpZ3VyYXRpb24uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLmRhdGFiYXNlSWRlbnRpZmllciAtIExvZ2ljYWwgZGF0YWJhc2UgaWRlbnRpZmllci5cbiAgICogQHBhcmFtIHtSZXR1cm5UeXBlPHR5cGVvZiBUZW5hbnQuaGFuZGxlPn0gYXJncy5oYW5kbGUgLSBDYXB0dXJlZCB0ZW5hbnQgaGFuZGxlLlxuICAgKi9cbiAgY29uc3RydWN0b3Ioe2NvbmZpZ3VyYXRpb24sIGRhdGFiYXNlSWRlbnRpZmllciwgaGFuZGxlfSkge1xuICAgIHRoaXMuX2NvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uXG4gICAgdGhpcy5fZGF0YWJhc2VJZGVudGlmaWVyID0gZGF0YWJhc2VJZGVudGlmaWVyXG4gICAgdGhpcy5faGFuZGxlID0gaGFuZGxlXG5cbiAgICBPYmplY3QuZnJlZXplKHRoaXMpXG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY2FwdHVyZWQgbG9naWNhbCBkYXRhYmFzZSBpZGVudGlmaWVyLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIENhcHR1cmVkIGxvZ2ljYWwgZGF0YWJhc2UgaWRlbnRpZmllci5cbiAgICovXG4gIGRhdGFiYXNlSWRlbnRpZmllcigpIHsgcmV0dXJuIHRoaXMuX2RhdGFiYXNlSWRlbnRpZmllciB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGNhcHR1cmVkIHBoeXNpY2FsIGRhdGFiYXNlIGNvbmZpZ3VyYXRpb24uXG4gICAqIEByZXR1cm5zIHtpbXBvcnQoXCIuLi9jb25maWd1cmF0aW9uLXR5cGVzLmpzXCIpLkRhdGFiYXNlQ29uZmlndXJhdGlvblR5cGV9IC0gQ2FwdHVyZWQgcGh5c2ljYWwgZGF0YWJhc2UgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIGRhdGFiYXNlQ29uZmlndXJhdGlvbigpIHsgcmV0dXJuIHRoaXMuX2hhbmRsZS5kYXRhYmFzZUNvbmZpZ3VyYXRpb24odGhpcy5fZGF0YWJhc2VJZGVudGlmaWVyKSB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGNhcHR1cmVkIHRlbmFudCBkZXNjcmlwdG9yLlxuICAgKiBAcmV0dXJucyB7UmV0dXJuVHlwZTxSZXR1cm5UeXBlPHR5cGVvZiBUZW5hbnQuaGFuZGxlPltcInRlbmFudFwiXT59IC0gQ2FwdHVyZWQgaW1tdXRhYmxlIHRlbmFudCBkZXNjcmlwdG9yLlxuICAgKi9cbiAgdGVuYW50KCkgeyByZXR1cm4gdGhpcy5faGFuZGxlLnRlbmFudCgpIH1cblxuICAvKipcbiAgICogUnVucyB3b3JrIG9uIG9uZSBjb25uZWN0aW9uIHBpbm5lZCB0byB0aGUgY2FwdHVyZWQgcGh5c2ljYWwgZGF0YWJhc2UuXG4gICAqIEB0ZW1wbGF0ZSBUXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gV29yayBhcmd1bWVudHMuXG4gICAqIEBwYXJhbSB7KGNvbm5lY3Rpb246IGltcG9ydChcIi4vZHJpdmVycy9iYXNlLmpzXCIpLmRlZmF1bHQpID0+IFByb21pc2U8VD59IGFyZ3MuY2FsbGJhY2sgLSBTZWxlY3RlZCBkYXRhYmFzZSB3b3JrLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXJncy5uYW1lIC0gQ2hlY2tvdXQgbmFtZS5cbiAgICogQHJldHVybnMge1Byb21pc2U8VD59IC0gQ2FsbGJhY2sgcmVzdWx0LlxuICAgKi9cbiAgYXN5bmMgcnVuKHtjYWxsYmFjaywgbmFtZX0pIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fY29uZmlndXJhdGlvbi5ydW5XaXRoVGVuYW50KHRoaXMudGVuYW50KCksIGFzeW5jICgpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLl9jb25maWd1cmF0aW9uLndpdGhEYXRhYmFzZU9wZXJhdGlvbih7XG4gICAgICAgIGRhdGFiYXNlQ29uZmlndXJhdGlvbjogdGhpcy5kYXRhYmFzZUNvbmZpZ3VyYXRpb24oKSxcbiAgICAgICAgZGF0YWJhc2VJZGVudGlmaWVyOiB0aGlzLmRhdGFiYXNlSWRlbnRpZmllcigpLFxuICAgICAgICBuYW1lLFxuICAgICAgICB0ZW5hbnQ6IHRoaXMudGVuYW50KClcbiAgICAgIH0sIGFzeW5jIChvcGVyYXRpb24pID0+IGF3YWl0IGNhbGxiYWNrKG9wZXJhdGlvbi5jb25uZWN0aW9uKCkpKVxuICAgIH0pXG4gIH1cbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initializer-from-require-context.d.ts","sourceRoot":"","sources":["../../../src/database/initializer-from-require-context.js"],"names":[],"mappings":"AAIG,YAAiF,sCAAsC,GAA7G,CAAC,EAAE,EAAE,MAAM,KAAK;IAAC,OAAO,EAAE,cAAc,mBAAmB,EAAE,OAAO,CAAA;CAAC,CAAwC;AACvH,YAGG,4BAA4B,GAHrB,sCAAsC,GAAG;IACjD,IAAI,EAAE,MAAM,MAAM,EAAE,CAAC;IACrB,EAAE,EAAE,MAAM,CAAA;CACX,CAA8B;AANlC;;;;;;;GAOG;AAEH,OAAO,MAAM,MAAM,cAAc,CAAA;AAGjC,MAAM,CAAC,OAAO,OAAO,8CAA8C;IAS1D,cAAc;IACd,MAAM;IATb;;;;OAIG;IACH,YAAY,EAAC,cAAc,EAAE,GAAG,QAAQ,EAAC,EAFtC;QAA2C,cAAc,EAAjD,4BAA4B,CACtC;KACwC,EAKxC;IAED;;;;;OAKG;IACG,UAAU,CAAC,EAAC,aAAa,EAAE,GAAG,QAAQ,EAAC,EAH1C;QAAoD,aAAa,EAAzD,OAAO,qBAAqB,EAAE,OAAO,CAC7C;KAE0C,GAFhC,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"initializer-from-require-context.d.ts","sourceRoot":"","sources":["../../../src/database/initializer-from-require-context.js"],"names":[],"mappings":"AAIG,YAAiF,sCAAsC,GAA7G,CAAC,EAAE,EAAE,MAAM,KAAK;IAAC,OAAO,EAAE,cAAc,mBAAmB,EAAE,OAAO,CAAA;CAAC,CAAwC;AACvH,YAGG,4BAA4B,GAHrB,sCAAsC,GAAG;IACjD,IAAI,EAAE,MAAM,MAAM,EAAE,CAAC;IACrB,EAAE,EAAE,MAAM,CAAA;CACX,CAA8B;AANlC;;;;;;;GAOG;AAEH,OAAO,MAAM,MAAM,cAAc,CAAA;AAGjC,MAAM,CAAC,OAAO,OAAO,8CAA8C;IAS1D,cAAc;IACd,MAAM;IATb;;;;OAIG;IACH,YAAY,EAAC,cAAc,EAAE,GAAG,QAAQ,EAAC,EAFtC;QAA2C,cAAc,EAAjD,4BAA4B,CACtC;KACwC,EAKxC;IAED;;;;;OAKG;IACG,UAAU,CAAC,EAAC,aAAa,EAAE,GAAG,QAAQ,EAAC,EAH1C;QAAoD,aAAa,EAAzD,OAAO,qBAAqB,EAAE,OAAO,CAC7C;KAE0C,GAFhC,OAAO,CAAC,IAAI,CAAC,CA6BzB;IAED;;;;;;OAMG;IACG,sBAAsB,CAAC,EAAC,aAAa,EAAE,UAAU,EAAC,EAJrD;QAAoD,aAAa,EAAzD,OAAO,qBAAqB,EAAE,OAAO,CAC7C;QAAyD,UAAU,EAA3D,cAAc,mBAAmB,EAAE,OAAO,CAClD;KAEqD,GAF3C,OAAO,CAAC,IAAI,CAAC,CAQzB;IAED;;;;;;;;;;;OAWG;IACG,kCAAkC,CAAC,EAAC,aAAa,EAAE,UAAU,EAAC,EAJjE;QAAoD,aAAa,EAAzD,OAAO,qBAAqB,EAAE,OAAO,CAC7C;QAAyD,UAAU,EAA3D,cAAc,mBAAmB,EAAE,OAAO,CAClD;KAEiE,GAFvD,OAAO,CAAC,IAAI,CAAC,CAmBzB;CACF"}
|
|
@@ -35,6 +35,11 @@ export default class VelociousDatabaseInitializerFromRequireContext {
|
|
|
35
35
|
const modelClass = modelClassImport.default;
|
|
36
36
|
if (!modelClass)
|
|
37
37
|
throw new Error(`Model wasn't exported from: ${fileName}`);
|
|
38
|
+
const configuredDatabase = configuration.getDatabaseConfiguration()[modelClass.getConfiguredDatabaseIdentifier()];
|
|
39
|
+
if (configuredDatabase?.tenantOnly && !configuration.isDatabaseIdentifierActive(modelClass.getConfiguredDatabaseIdentifier())) {
|
|
40
|
+
modelClass.registerRecordClass({ configuration });
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
38
43
|
if (!modelClass.getEagerLoadRecordMetadata()) {
|
|
39
44
|
modelClass.registerRecordClass({ configuration });
|
|
40
45
|
await this._bestEffortInitializeDeferredModel({ configuration, modelClass });
|
|
@@ -87,4 +92,4 @@ export default class VelociousDatabaseInitializerFromRequireContext {
|
|
|
87
92
|
}
|
|
88
93
|
}
|
|
89
94
|
}
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbGl6ZXItZnJvbS1yZXF1aXJlLWNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGF0YWJhc2UvaW5pdGlhbGl6ZXItZnJvbS1yZXF1aXJlLWNvbnRleHQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaOzs7Ozs7O0dBT0c7QUFFSCxPQUFPLE1BQU0sTUFBTSxjQUFjLENBQUE7QUFDakMsT0FBTyxhQUFhLE1BQU0sNkJBQTZCLENBQUE7QUFFdkQsTUFBTSxDQUFDLE9BQU8sT0FBTyw4Q0FBOEM7SUFDakU7Ozs7T0FJRztJQUNILFlBQVksRUFBQyxjQUFjLEVBQUUsR0FBRyxRQUFRLEVBQUM7UUFDdkMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBRXZCLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFBO1FBQ3BDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDaEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFDLGFBQWEsRUFBRSxHQUFHLFFBQVEsRUFBQztRQUMzQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUE7UUFFdkIsS0FBSyxNQUFNLFFBQVEsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDbEQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1lBRXRELElBQUksQ0FBQyxnQkFBZ0I7Z0JBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsUUFBUSxFQUFFLENBQUMsQ0FBQTtZQUV0RixNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUE7WUFFM0MsSUFBSSxDQUFDLFVBQVU7Z0JBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsUUFBUSxFQUFFLENBQUMsQ0FBQTtZQUUzRSxNQUFNLGtCQUFrQixHQUFHLGFBQWEsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLFVBQVUsQ0FBQywrQkFBK0IsRUFBRSxDQUFDLENBQUE7WUFFakgsSUFBSSxrQkFBa0IsRUFBRSxVQUFVLElBQUksQ0FBQyxhQUFhLENBQUMsMEJBQTBCLENBQUMsVUFBVSxDQUFDLCtCQUErQixFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUM5SCxVQUFVLENBQUMsbUJBQW1CLENBQUMsRUFBQyxhQUFhLEVBQUMsQ0FBQyxDQUFBO2dCQUMvQyxTQUFRO1lBQ1YsQ0FBQztZQUVELElBQUksQ0FBQyxVQUFVLENBQUMsMEJBQTBCLEVBQUUsRUFBRSxDQUFDO2dCQUM3QyxVQUFVLENBQUMsbUJBQW1CLENBQUMsRUFBQyxhQUFhLEVBQUMsQ0FBQyxDQUFBO2dCQUMvQyxNQUFNLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxFQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFBO2dCQUMxRSxTQUFRO1lBQ1YsQ0FBQztZQUVELE1BQU0sSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUMsYUFBYSxFQUFFLFVBQVUsRUFBQyxDQUFDLENBQUE7UUFDaEUsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxLQUFLLENBQUMsc0JBQXNCLENBQUMsRUFBQyxhQUFhLEVBQUUsVUFBVSxFQUFDO1FBQ3RELE1BQU0sVUFBVSxDQUFDLGdCQUFnQixDQUFDLEVBQUMsYUFBYSxFQUFDLENBQUMsQ0FBQTtRQUVsRCxJQUFJLE1BQU0sVUFBVSxDQUFDLG9CQUFvQixFQUFFLEVBQUUsQ0FBQztZQUM1QyxNQUFNLFVBQVUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLGdCQUFnQixDQUFDLEVBQUMsYUFBYSxFQUFDLENBQUMsQ0FBQTtRQUMxRSxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0gsS0FBSyxDQUFDLGtDQUFrQyxDQUFDLEVBQUMsYUFBYSxFQUFFLFVBQVUsRUFBQztRQUNsRSxJQUFJLENBQUM7WUFDSCxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUMsMEJBQTBCLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQTtZQUM3RSxNQUFNLEtBQUssR0FBRyxNQUFNLFVBQVUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxFQUFFLEVBQUMsVUFBVSxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUE7WUFFMUYsSUFBSSxDQUFDLEtBQUs7Z0JBQUUsT0FBTTtZQUVsQixNQUFNLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxFQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFBO1FBQ2hFLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsNEVBQTRFO1lBQzVFLHVFQUF1RTtZQUN2RSxpRkFBaUY7WUFDakYsNkVBQTZFO1lBQzdFLHlEQUF5RDtZQUN6RCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLFVBQVUsQ0FBQyxJQUFJLG1EQUFtRCxFQUFFLEtBQUssQ0FBQyxDQUFBO1lBQ3ZHLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFDLGFBQWEsRUFBQyxDQUFDLENBQUE7UUFDakQsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG4vKipcbiAqIERlZmluZXMgdGhpcyB0eXBlZGVmLlxuICogQHR5cGVkZWYgeyhpZDogc3RyaW5nKSA9PiB7ZGVmYXVsdDogdHlwZW9mIGltcG9ydChcIi4vcmVjb3JkL2luZGV4LmpzXCIpLmRlZmF1bHR9fSBNb2RlbENsYXNzUmVxdWlyZUNvbnRleHRJREZ1bmN0aW9uVHlwZVxuICogQHR5cGVkZWYge01vZGVsQ2xhc3NSZXF1aXJlQ29udGV4dElERnVuY3Rpb25UeXBlICYge1xuICogICBrZXlzOiAoKSA9PiBzdHJpbmdbXSxcbiAqICAgaWQ6IHN0cmluZ1xuICogfX0gTW9kZWxDbGFzc1JlcXVpcmVDb250ZXh0VHlwZVxuICovXG5cbmltcG9ydCBMb2dnZXIgZnJvbSBcIi4uL2xvZ2dlci5qc1wiXG5pbXBvcnQgcmVzdEFyZ3NFcnJvciBmcm9tIFwiLi4vdXRpbHMvcmVzdC1hcmdzLWVycm9yLmpzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVsb2Npb3VzRGF0YWJhc2VJbml0aWFsaXplckZyb21SZXF1aXJlQ29udGV4dCB7XG4gIC8qKlxuICAgKiBSdW5zIGNvbnN0cnVjdG9yLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge01vZGVsQ2xhc3NSZXF1aXJlQ29udGV4dFR5cGV9IGFyZ3MucmVxdWlyZUNvbnRleHQgLSBSZXF1aXJlIGNvbnRleHQuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih7cmVxdWlyZUNvbnRleHQsIC4uLnJlc3RBcmdzfSkge1xuICAgIHJlc3RBcmdzRXJyb3IocmVzdEFyZ3MpXG5cbiAgICB0aGlzLnJlcXVpcmVDb250ZXh0ID0gcmVxdWlyZUNvbnRleHRcbiAgICB0aGlzLmxvZ2dlciA9IG5ldyBMb2dnZXIodGhpcylcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGluaXRpYWxpemUuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0fSBhcmdzLmNvbmZpZ3VyYXRpb24gLSBDb25maWd1cmF0aW9uIGluc3RhbmNlLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGNvbXBsZXRlLlxuICAgKi9cbiAgYXN5bmMgaW5pdGlhbGl6ZSh7Y29uZmlndXJhdGlvbiwgLi4ucmVzdEFyZ3N9KSB7XG4gICAgcmVzdEFyZ3NFcnJvcihyZXN0QXJncylcblxuICAgIGZvciAoY29uc3QgZmlsZU5hbWUgb2YgdGhpcy5yZXF1aXJlQ29udGV4dC5rZXlzKCkpIHtcbiAgICAgIGNvbnN0IG1vZGVsQ2xhc3NJbXBvcnQgPSB0aGlzLnJlcXVpcmVDb250ZXh0KGZpbGVOYW1lKVxuXG4gICAgICBpZiAoIW1vZGVsQ2xhc3NJbXBvcnQpIHRocm93IG5ldyBFcnJvcihgQ291bGRuJ3QgaW1wb3J0IG1vZGVsIGNsYXNzIGZyb20gJHtmaWxlTmFtZX1gKVxuXG4gICAgICBjb25zdCBtb2RlbENsYXNzID0gbW9kZWxDbGFzc0ltcG9ydC5kZWZhdWx0XG5cbiAgICAgIGlmICghbW9kZWxDbGFzcykgdGhyb3cgbmV3IEVycm9yKGBNb2RlbCB3YXNuJ3QgZXhwb3J0ZWQgZnJvbTogJHtmaWxlTmFtZX1gKVxuXG4gICAgICBjb25zdCBjb25maWd1cmVkRGF0YWJhc2UgPSBjb25maWd1cmF0aW9uLmdldERhdGFiYXNlQ29uZmlndXJhdGlvbigpW21vZGVsQ2xhc3MuZ2V0Q29uZmlndXJlZERhdGFiYXNlSWRlbnRpZmllcigpXVxuXG4gICAgICBpZiAoY29uZmlndXJlZERhdGFiYXNlPy50ZW5hbnRPbmx5ICYmICFjb25maWd1cmF0aW9uLmlzRGF0YWJhc2VJZGVudGlmaWVyQWN0aXZlKG1vZGVsQ2xhc3MuZ2V0Q29uZmlndXJlZERhdGFiYXNlSWRlbnRpZmllcigpKSkge1xuICAgICAgICBtb2RlbENsYXNzLnJlZ2lzdGVyUmVjb3JkQ2xhc3Moe2NvbmZpZ3VyYXRpb259KVxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICBpZiAoIW1vZGVsQ2xhc3MuZ2V0RWFnZXJMb2FkUmVjb3JkTWV0YWRhdGEoKSkge1xuICAgICAgICBtb2RlbENsYXNzLnJlZ2lzdGVyUmVjb3JkQ2xhc3Moe2NvbmZpZ3VyYXRpb259KVxuICAgICAgICBhd2FpdCB0aGlzLl9iZXN0RWZmb3J0SW5pdGlhbGl6ZURlZmVycmVkTW9kZWwoe2NvbmZpZ3VyYXRpb24sIG1vZGVsQ2xhc3N9KVxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICBhd2FpdCB0aGlzLl9pbml0aWFsaXplTW9kZWxSZWNvcmQoe2NvbmZpZ3VyYXRpb24sIG1vZGVsQ2xhc3N9KVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyBhIG1vZGVsJ3MgcmVjb3JkIG1ldGFkYXRhIGFuZCBpdHMgdHJhbnNsYXRpb24gdGFibGUgKGlmIGFueSkuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0fSBhcmdzLmNvbmZpZ3VyYXRpb24gLSBDb25maWd1cmF0aW9uIGluc3RhbmNlLlxuICAgKiBAcGFyYW0ge3R5cGVvZiBpbXBvcnQoXCIuL3JlY29yZC9pbmRleC5qc1wiKS5kZWZhdWx0fSBhcmdzLm1vZGVsQ2xhc3MgLSBNb2RlbCBjbGFzcyB0byBpbml0aWFsaXplLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGNvbXBsZXRlLlxuICAgKi9cbiAgYXN5bmMgX2luaXRpYWxpemVNb2RlbFJlY29yZCh7Y29uZmlndXJhdGlvbiwgbW9kZWxDbGFzc30pIHtcbiAgICBhd2FpdCBtb2RlbENsYXNzLmluaXRpYWxpemVSZWNvcmQoe2NvbmZpZ3VyYXRpb259KVxuXG4gICAgaWYgKGF3YWl0IG1vZGVsQ2xhc3MuaGFzVHJhbnNsYXRpb25zVGFibGUoKSkge1xuICAgICAgYXdhaXQgbW9kZWxDbGFzcy5nZXRUcmFuc2xhdGlvbkNsYXNzKCkuaW5pdGlhbGl6ZVJlY29yZCh7Y29uZmlndXJhdGlvbn0pXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1vZGVscyBvcHRpbmcgb3V0IG9mIGVhZ2VyIG1ldGFkYXRhIGxvYWRpbmcgKGBzZXRFYWdlckxvYWRSZWNvcmRNZXRhZGF0YShmYWxzZSlgKVxuICAgKiBhcmUgc3RpbGwgaW5pdGlhbGl6ZWQgYXQgc3RhcnR1cCB3aGVuIHRoZWlyIChvcHRpb25hbCkgdGFibGUgaXMgcHJlc2VudCwgc28gdGhhdFxuICAgKiBzeW5jaHJvbm91cyBxdWVyeSBidWlsZGluZyBzdWNoIGFzIGAud2hlcmUoLi4uKWAgd29ya3Mgd2l0aG91dCBjYWxsZXJzIGhhdmluZyB0b1xuICAgKiBjYWxsIGBlbnN1cmVJbml0aWFsaXplZCgpYCBmaXJzdC4gV2hlbiB0aGUgdGFibGUg4oCUIG9yIGl0cyBjb25uZWN0aW9uIOKAlCBpcyBub3RcbiAgICogYXZhaWxhYmxlIHRoZSBtb2RlbCBpcyBsZWZ0IGRlZmVycmVkIHNvIHN0YXJ0dXAgc3RpbGwgc3VjY2VlZHM7IGl0IGNhbiB0aGVuXG4gICAqIGluaXRpYWxpemUgbGF6aWx5IHRoZSBmaXJzdCB0aW1lIGEgdGVybWluYWwgcXVlcnkgbWV0aG9kIChmaW5kL2NyZWF0ZS9ldGMuKSBydW5zLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gYXJncy5jb25maWd1cmF0aW9uIC0gQ29uZmlndXJhdGlvbiBpbnN0YW5jZS5cbiAgICogQHBhcmFtIHt0eXBlb2YgaW1wb3J0KFwiLi9yZWNvcmQvaW5kZXguanNcIikuZGVmYXVsdH0gYXJncy5tb2RlbENsYXNzIC0gTW9kZWwgY2xhc3MgdG8gaW5pdGlhbGl6ZS5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBjb21wbGV0ZS5cbiAgICovXG4gIGFzeW5jIF9iZXN0RWZmb3J0SW5pdGlhbGl6ZURlZmVycmVkTW9kZWwoe2NvbmZpZ3VyYXRpb24sIG1vZGVsQ2xhc3N9KSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNvbm5lY3Rpb24gPSBtb2RlbENsYXNzLmNvbm5lY3Rpb24oe2VuZm9yY2VUZW5hbnREYXRhYmFzZVNjb3BlOiBmYWxzZX0pXG4gICAgICBjb25zdCB0YWJsZSA9IGF3YWl0IGNvbm5lY3Rpb24uZ2V0VGFibGVCeU5hbWUobW9kZWxDbGFzcy50YWJsZU5hbWUoKSwge3Rocm93RXJyb3I6IGZhbHNlfSlcblxuICAgICAgaWYgKCF0YWJsZSkgcmV0dXJuXG5cbiAgICAgIGF3YWl0IHRoaXMuX2luaXRpYWxpemVNb2RlbFJlY29yZCh7Y29uZmlndXJhdGlvbiwgbW9kZWxDbGFzc30pXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIFRoZSBvcHRpb25hbCB0YWJsZSAtIG9yLCBmb3IgYSB0cmFuc2xhdGVkIG1vZGVsLCBpdHMgPHRhYmxlPl90cmFuc2xhdGlvbnNcbiAgICAgIC8vIHRhYmxlIChpbml0aWFsaXplUmVjb3JkIC0+IF9kZWZpbmVUcmFuc2xhdGlvbk1ldGhvZHMgaW5pdGlhbGl6ZXMgdGhlXG4gICAgICAvLyB0cmFuc2xhdGlvbiBjbGFzcykgLSBpcyBtaXNzaW5nLCBvciBpdHMgY29ubmVjdGlvbiBpcyB1bmF2YWlsYWJsZS4gUmUtcmVnaXN0ZXJcbiAgICAgIC8vIHRvIGRyb3AgYW55IHBhcnRpYWwgbWV0YWRhdGEgYW5kIGxlYXZlIHRoZSBtb2RlbCBkZWZlcnJlZCBzbyBzdGFydHVwIHN0aWxsXG4gICAgICAvLyBzdWNjZWVkczsgaXQgaW5pdGlhbGl6ZXMgbGF6aWx5IG9uIGZpcnN0IHRlcm1pbmFsIHVzZS5cbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBMZWF2aW5nICR7bW9kZWxDbGFzcy5uYW1lfSBkZWZlcnJlZCAtIHRhYmxlIG1ldGFkYXRhIHVuYXZhaWxhYmxlIGF0IHN0YXJ0dXBgLCBlcnJvcilcbiAgICAgIG1vZGVsQ2xhc3MucmVnaXN0ZXJSZWNvcmRDbGFzcyh7Y29uZmlndXJhdGlvbn0pXG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dump.d.ts","sourceRoot":"","sources":["../../../../../../../../src/environment-handlers/node/cli/commands/db/schema/dump.js"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,uCAAuC,CAAA;
|
|
1
|
+
{"version":3,"file":"dump.d.ts","sourceRoot":"","sources":["../../../../../../../../src/environment-handlers/node/cli/commands/db/schema/dump.js"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,uCAAuC,CAAA;AAM/D,2DAA2D;AAC3D,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,WAAW;IACnD;;kCAE8B;IACxB,OAAO,IADA,OAAO,CAAC,IAAI,CAAC,CAgCzB;IAED;;;;;OAKG;IACG,0BAA0B,CAAC,EAAC,GAAG,EAAC,EAHnC;QAA2F,GAAG,EAAtF,MAAM,CAAC,MAAM,EAAE,OAAO,4CAA4C,EAAE,OAAO,CAAC,CACpF;KAEmC,GAFzB,OAAO,CAAC,OAAO,CAAC,CAkB5B;CACF"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import BaseCommand from "../../../../../../cli/base-command.js";
|
|
2
|
+
import commandArguments from "../../../../../../cli/command-arguments.js";
|
|
3
|
+
import DatabaseGenerationContext from "../../../../../../database/generation-context.js";
|
|
2
4
|
import fileExists from "../../../../../../utils/file-exists.js";
|
|
3
5
|
import path from "path";
|
|
4
6
|
/** Node CLI command for dumping DB structure SQL files. */
|
|
@@ -7,6 +9,25 @@ export default class DbSchemaDump extends BaseCommand {
|
|
|
7
9
|
* Runs execute.
|
|
8
10
|
* @returns {Promise<void>} */
|
|
9
11
|
async execute() {
|
|
12
|
+
const parsedArguments = commandArguments({
|
|
13
|
+
definition: { valueOptions: ["--tenant"] },
|
|
14
|
+
processArgs: this.processArgs || []
|
|
15
|
+
});
|
|
16
|
+
const tenantDatabaseIdentifier = parsedArguments.tenant;
|
|
17
|
+
if (typeof tenantDatabaseIdentifier === "string") {
|
|
18
|
+
const context = await DatabaseGenerationContext.resolve({
|
|
19
|
+
configuration: this.getConfiguration(),
|
|
20
|
+
databaseIdentifier: tenantDatabaseIdentifier
|
|
21
|
+
});
|
|
22
|
+
await context.run({ name: "DB selected tenant schema dump", callback: async (db) => {
|
|
23
|
+
const dbs = { [context.databaseIdentifier()]: db };
|
|
24
|
+
const shouldGenerate = await this.shouldGenerateStructureSql({ dbs });
|
|
25
|
+
if (!shouldGenerate)
|
|
26
|
+
return;
|
|
27
|
+
await this.getEnvironmentHandler().afterMigrations({ dbs, reason: "schemaDump" });
|
|
28
|
+
} });
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
10
31
|
await this.getConfiguration().ensureConnections({ name: "DB schema dump" }, async (dbs) => {
|
|
11
32
|
const shouldGenerate = await this.shouldGenerateStructureSql({ dbs });
|
|
12
33
|
if (!shouldGenerate)
|
|
@@ -35,4 +56,4 @@ export default class DbSchemaDump extends BaseCommand {
|
|
|
35
56
|
return false;
|
|
36
57
|
}
|
|
37
58
|
}
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVtcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9lbnZpcm9ubWVudC1oYW5kbGVycy9ub2RlL2NsaS9jb21tYW5kcy9kYi9zY2hlbWEvZHVtcC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFdBQVcsTUFBTSx1Q0FBdUMsQ0FBQTtBQUMvRCxPQUFPLGdCQUFnQixNQUFNLDRDQUE0QyxDQUFBO0FBQ3pFLE9BQU8seUJBQXlCLE1BQU0sa0RBQWtELENBQUE7QUFDeEYsT0FBTyxVQUFVLE1BQU0sd0NBQXdDLENBQUE7QUFDL0QsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFBO0FBRXZCLDJEQUEyRDtBQUMzRCxNQUFNLENBQUMsT0FBTyxPQUFPLFlBQWEsU0FBUSxXQUFXO0lBQ25EOztrQ0FFOEI7SUFDOUIsS0FBSyxDQUFDLE9BQU87UUFDWCxNQUFNLGVBQWUsR0FBRyxnQkFBZ0IsQ0FBQztZQUN2QyxVQUFVLEVBQUUsRUFBQyxZQUFZLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBQztZQUN4QyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsSUFBSSxFQUFFO1NBQ3BDLENBQUMsQ0FBQTtRQUNGLE1BQU0sd0JBQXdCLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQTtRQUV2RCxJQUFJLE9BQU8sd0JBQXdCLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDakQsTUFBTSxPQUFPLEdBQUcsTUFBTSx5QkFBeUIsQ0FBQyxPQUFPLENBQUM7Z0JBQ3RELGFBQWEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3RDLGtCQUFrQixFQUFFLHdCQUF3QjthQUM3QyxDQUFDLENBQUE7WUFFRixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBQyxJQUFJLEVBQUUsZ0NBQWdDLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRTtvQkFDaEYsTUFBTSxHQUFHLEdBQUcsRUFBQyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFDLENBQUE7b0JBQ2hELE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLDBCQUEwQixDQUFDLEVBQUMsR0FBRyxFQUFDLENBQUMsQ0FBQTtvQkFFbkUsSUFBSSxDQUFDLGNBQWM7d0JBQUUsT0FBTTtvQkFFM0IsTUFBTSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBQyxDQUFDLENBQUE7Z0JBQ2pGLENBQUMsRUFBQyxDQUFDLENBQUE7WUFDSCxPQUFNO1FBQ1IsQ0FBQztRQUVELE1BQU0sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsaUJBQWlCLENBQUMsRUFBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDdEYsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsMEJBQTBCLENBQUMsRUFBQyxHQUFHLEVBQUMsQ0FBQyxDQUFBO1lBRW5FLElBQUksQ0FBQyxjQUFjO2dCQUFFLE9BQU07WUFFM0IsTUFBTSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBQyxDQUFDLENBQUE7UUFDakYsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsMEJBQTBCLENBQUMsRUFBQyxHQUFHLEVBQUM7UUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLHVCQUF1QixDQUFDLEVBQUMsTUFBTSxFQUFFLFlBQVksRUFBQyxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUE7UUFFMUYsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFFL0MsS0FBSyxNQUFNLFVBQVUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDMUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFBO1lBRTFCLElBQUksT0FBTyxFQUFFLENBQUMsWUFBWSxLQUFLLFVBQVU7Z0JBQUUsU0FBUTtZQUVuRCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLGFBQWEsVUFBVSxNQUFNLENBQUMsQ0FBQTtZQUV6RSxJQUFJLENBQUMsTUFBTSxVQUFVLENBQUMsaUJBQWlCLENBQUM7Z0JBQUUsT0FBTyxJQUFJLENBQUE7UUFDdkQsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJhc2VDb21tYW5kIGZyb20gXCIuLi8uLi8uLi8uLi8uLi8uLi9jbGkvYmFzZS1jb21tYW5kLmpzXCJcbmltcG9ydCBjb21tYW5kQXJndW1lbnRzIGZyb20gXCIuLi8uLi8uLi8uLi8uLi8uLi9jbGkvY29tbWFuZC1hcmd1bWVudHMuanNcIlxuaW1wb3J0IERhdGFiYXNlR2VuZXJhdGlvbkNvbnRleHQgZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL2RhdGFiYXNlL2dlbmVyYXRpb24tY29udGV4dC5qc1wiXG5pbXBvcnQgZmlsZUV4aXN0cyBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vLi4vdXRpbHMvZmlsZS1leGlzdHMuanNcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuXG4vKiogTm9kZSBDTEkgY29tbWFuZCBmb3IgZHVtcGluZyBEQiBzdHJ1Y3R1cmUgU1FMIGZpbGVzLiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGJTY2hlbWFEdW1wIGV4dGVuZHMgQmFzZUNvbW1hbmQge1xuICAvKipcbiAgICogUnVucyBleGVjdXRlLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gKi9cbiAgYXN5bmMgZXhlY3V0ZSgpIHtcbiAgICBjb25zdCBwYXJzZWRBcmd1bWVudHMgPSBjb21tYW5kQXJndW1lbnRzKHtcbiAgICAgIGRlZmluaXRpb246IHt2YWx1ZU9wdGlvbnM6IFtcIi0tdGVuYW50XCJdfSxcbiAgICAgIHByb2Nlc3NBcmdzOiB0aGlzLnByb2Nlc3NBcmdzIHx8IFtdXG4gICAgfSlcbiAgICBjb25zdCB0ZW5hbnREYXRhYmFzZUlkZW50aWZpZXIgPSBwYXJzZWRBcmd1bWVudHMudGVuYW50XG5cbiAgICBpZiAodHlwZW9mIHRlbmFudERhdGFiYXNlSWRlbnRpZmllciA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgY29uc3QgY29udGV4dCA9IGF3YWl0IERhdGFiYXNlR2VuZXJhdGlvbkNvbnRleHQucmVzb2x2ZSh7XG4gICAgICAgIGNvbmZpZ3VyYXRpb246IHRoaXMuZ2V0Q29uZmlndXJhdGlvbigpLFxuICAgICAgICBkYXRhYmFzZUlkZW50aWZpZXI6IHRlbmFudERhdGFiYXNlSWRlbnRpZmllclxuICAgICAgfSlcblxuICAgICAgYXdhaXQgY29udGV4dC5ydW4oe25hbWU6IFwiREIgc2VsZWN0ZWQgdGVuYW50IHNjaGVtYSBkdW1wXCIsIGNhbGxiYWNrOiBhc3luYyAoZGIpID0+IHtcbiAgICAgICAgY29uc3QgZGJzID0ge1tjb250ZXh0LmRhdGFiYXNlSWRlbnRpZmllcigpXTogZGJ9XG4gICAgICAgIGNvbnN0IHNob3VsZEdlbmVyYXRlID0gYXdhaXQgdGhpcy5zaG91bGRHZW5lcmF0ZVN0cnVjdHVyZVNxbCh7ZGJzfSlcblxuICAgICAgICBpZiAoIXNob3VsZEdlbmVyYXRlKSByZXR1cm5cblxuICAgICAgICBhd2FpdCB0aGlzLmdldEVudmlyb25tZW50SGFuZGxlcigpLmFmdGVyTWlncmF0aW9ucyh7ZGJzLCByZWFzb246IFwic2NoZW1hRHVtcFwifSlcbiAgICAgIH19KVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5nZXRDb25maWd1cmF0aW9uKCkuZW5zdXJlQ29ubmVjdGlvbnMoe25hbWU6IFwiREIgc2NoZW1hIGR1bXBcIn0sIGFzeW5jIChkYnMpID0+IHtcbiAgICAgIGNvbnN0IHNob3VsZEdlbmVyYXRlID0gYXdhaXQgdGhpcy5zaG91bGRHZW5lcmF0ZVN0cnVjdHVyZVNxbCh7ZGJzfSlcblxuICAgICAgaWYgKCFzaG91bGRHZW5lcmF0ZSkgcmV0dXJuXG5cbiAgICAgIGF3YWl0IHRoaXMuZ2V0RW52aXJvbm1lbnRIYW5kbGVyKCkuYWZ0ZXJNaWdyYXRpb25zKHtkYnMsIHJlYXNvbjogXCJzY2hlbWFEdW1wXCJ9KVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogUnVucyBzaG91bGQgZ2VuZXJhdGUgc3RydWN0dXJlIHNxbC5cbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBpbXBvcnQoXCIuLi8uLi8uLi8uLi8uLi8uLi9kYXRhYmFzZS9kcml2ZXJzL2Jhc2UuanNcIikuZGVmYXVsdD59IGFyZ3MuZGJzIC0gQWN0aXZlIERCIGNvbm5lY3Rpb25zIGJ5IGlkZW50aWZpZXIuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGJvb2xlYW4+fSAtIFdoZXRoZXIgc3RydWN0dXJlIFNRTCBzaG91bGQgYmUgZ2VuZXJhdGVkLlxuICAgKi9cbiAgYXN5bmMgc2hvdWxkR2VuZXJhdGVTdHJ1Y3R1cmVTcWwoe2Ric30pIHtcbiAgICBpZiAoIXRoaXMuZ2V0Q29uZmlndXJhdGlvbigpLnNob3VsZFdyaXRlU3RydWN0dXJlU3FsKHtyZWFzb246IFwic2NoZW1hRHVtcFwifSkpIHJldHVybiBmYWxzZVxuXG4gICAgY29uc3QgZGJEaXIgPSBwYXRoLmpvaW4odGhpcy5kaXJlY3RvcnkoKSwgXCJkYlwiKVxuXG4gICAgZm9yIChjb25zdCBpZGVudGlmaWVyIG9mIE9iamVjdC5rZXlzKGRicykpIHtcbiAgICAgIGNvbnN0IGRiID0gZGJzW2lkZW50aWZpZXJdXG5cbiAgICAgIGlmICh0eXBlb2YgZGIuc3RydWN0dXJlU3FsICE9PSBcImZ1bmN0aW9uXCIpIGNvbnRpbnVlXG5cbiAgICAgIGNvbnN0IHN0cnVjdHVyZUZpbGVQYXRoID0gcGF0aC5qb2luKGRiRGlyLCBgc3RydWN0dXJlLSR7aWRlbnRpZmllcn0uc3FsYClcblxuICAgICAgaWYgKCFhd2FpdCBmaWxlRXhpc3RzKHN0cnVjdHVyZUZpbGVQYXRoKSkgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuIl19
|
|
@@ -5,5 +5,16 @@ export default class DbSchemaLoad extends BaseCommand {
|
|
|
5
5
|
* Runs execute.
|
|
6
6
|
* @returns {Promise<void>} */
|
|
7
7
|
execute(): Promise<void>;
|
|
8
|
+
/**
|
|
9
|
+
* Loads one identifier's explicit structure file into one selected connection.
|
|
10
|
+
* @param {object} args - Load arguments.
|
|
11
|
+
* @param {import("../../../../../../database/drivers/base.js").default} args.db - Target connection.
|
|
12
|
+
* @param {string} args.identifier - Logical database identifier used in the file name.
|
|
13
|
+
* @returns {Promise<void>} - Resolves after loading.
|
|
14
|
+
*/
|
|
15
|
+
loadStructureSql({ db, identifier }: {
|
|
16
|
+
db: import("../../../../../../database/drivers/base.js").default;
|
|
17
|
+
identifier: string;
|
|
18
|
+
}): Promise<void>;
|
|
8
19
|
}
|
|
9
20
|
//# sourceMappingURL=load.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../../../../../../../src/environment-handlers/node/cli/commands/db/schema/load.js"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,uCAAuC,CAAA;
|
|
1
|
+
{"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../../../../../../../src/environment-handlers/node/cli/commands/db/schema/load.js"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,uCAAuC,CAAA;AAO/D,2DAA2D;AAC3D,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,WAAW;IACnD;;kCAE8B;IACxB,OAAO,IADA,OAAO,CAAC,IAAI,CAAC,CAyBzB;IAED;;;;;;OAMG;IACG,gBAAgB,CAAC,EAAC,EAAE,EAAE,UAAU,EAAC,EAJpC;QAA2E,EAAE,EAArE,OAAO,4CAA4C,EAAE,OAAO,CACpE;QAAqB,UAAU,EAAvB,MAAM,CACd;KAEoC,GAF1B,OAAO,CAAC,IAAI,CAAC,CASzB;CACF"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import BaseCommand from "../../../../../../cli/base-command.js";
|
|
2
|
+
import commandArguments from "../../../../../../cli/command-arguments.js";
|
|
3
|
+
import DatabaseGenerationContext from "../../../../../../database/generation-context.js";
|
|
2
4
|
import fs from "fs/promises";
|
|
3
5
|
import path from "path";
|
|
4
6
|
import StructureSqlLoader from "../../../../../../database/structure-sql-loader.js";
|
|
@@ -8,16 +10,40 @@ export default class DbSchemaLoad extends BaseCommand {
|
|
|
8
10
|
* Runs execute.
|
|
9
11
|
* @returns {Promise<void>} */
|
|
10
12
|
async execute() {
|
|
13
|
+
const parsedArguments = commandArguments({
|
|
14
|
+
definition: { valueOptions: ["--tenant"] },
|
|
15
|
+
processArgs: this.processArgs || []
|
|
16
|
+
});
|
|
17
|
+
const tenantDatabaseIdentifier = parsedArguments.tenant;
|
|
18
|
+
if (typeof tenantDatabaseIdentifier === "string") {
|
|
19
|
+
const context = await DatabaseGenerationContext.resolve({
|
|
20
|
+
configuration: this.getConfiguration(),
|
|
21
|
+
databaseIdentifier: tenantDatabaseIdentifier
|
|
22
|
+
});
|
|
23
|
+
await context.run({ name: "DB selected tenant schema load", callback: async (db) => {
|
|
24
|
+
await this.loadStructureSql({ db, identifier: context.databaseIdentifier() });
|
|
25
|
+
} });
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
11
28
|
await this.getConfiguration().ensureConnections({ name: "DB schema load" }, async (dbs) => {
|
|
12
|
-
const dbDir = path.join(this.directory(), "db");
|
|
13
|
-
const loader = new StructureSqlLoader();
|
|
14
29
|
for (const identifier of Object.keys(dbs)) {
|
|
15
|
-
|
|
16
|
-
const structureFilePath = path.join(dbDir, `structure-${identifier}.sql`);
|
|
17
|
-
const structureSql = await fs.readFile(structureFilePath, "utf8");
|
|
18
|
-
await loader.load({ db, structureSql });
|
|
30
|
+
await this.loadStructureSql({ db: dbs[identifier], identifier });
|
|
19
31
|
}
|
|
20
32
|
});
|
|
21
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Loads one identifier's explicit structure file into one selected connection.
|
|
36
|
+
* @param {object} args - Load arguments.
|
|
37
|
+
* @param {import("../../../../../../database/drivers/base.js").default} args.db - Target connection.
|
|
38
|
+
* @param {string} args.identifier - Logical database identifier used in the file name.
|
|
39
|
+
* @returns {Promise<void>} - Resolves after loading.
|
|
40
|
+
*/
|
|
41
|
+
async loadStructureSql({ db, identifier }) {
|
|
42
|
+
const dbDir = path.join(this.directory(), "db");
|
|
43
|
+
const loader = new StructureSqlLoader();
|
|
44
|
+
const structureFilePath = path.join(dbDir, `structure-${identifier}.sql`);
|
|
45
|
+
const structureSql = await fs.readFile(structureFilePath, "utf8");
|
|
46
|
+
await loader.load({ db, structureSql });
|
|
47
|
+
}
|
|
22
48
|
}
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9lbnZpcm9ubWVudC1oYW5kbGVycy9ub2RlL2NsaS9jb21tYW5kcy9kYi9zY2hlbWEvbG9hZC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFdBQVcsTUFBTSx1Q0FBdUMsQ0FBQTtBQUMvRCxPQUFPLGdCQUFnQixNQUFNLDRDQUE0QyxDQUFBO0FBQ3pFLE9BQU8seUJBQXlCLE1BQU0sa0RBQWtELENBQUE7QUFDeEYsT0FBTyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQzVCLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQTtBQUN2QixPQUFPLGtCQUFrQixNQUFNLG9EQUFvRCxDQUFBO0FBRW5GLDJEQUEyRDtBQUMzRCxNQUFNLENBQUMsT0FBTyxPQUFPLFlBQWEsU0FBUSxXQUFXO0lBQ25EOztrQ0FFOEI7SUFDOUIsS0FBSyxDQUFDLE9BQU87UUFDWCxNQUFNLGVBQWUsR0FBRyxnQkFBZ0IsQ0FBQztZQUN2QyxVQUFVLEVBQUUsRUFBQyxZQUFZLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBQztZQUN4QyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsSUFBSSxFQUFFO1NBQ3BDLENBQUMsQ0FBQTtRQUNGLE1BQU0sd0JBQXdCLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQTtRQUV2RCxJQUFJLE9BQU8sd0JBQXdCLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDakQsTUFBTSxPQUFPLEdBQUcsTUFBTSx5QkFBeUIsQ0FBQyxPQUFPLENBQUM7Z0JBQ3RELGFBQWEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3RDLGtCQUFrQixFQUFFLHdCQUF3QjthQUM3QyxDQUFDLENBQUE7WUFFRixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBQyxJQUFJLEVBQUUsZ0NBQWdDLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRTtvQkFDaEYsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxFQUFDLENBQUMsQ0FBQTtnQkFDN0UsQ0FBQyxFQUFDLENBQUMsQ0FBQTtZQUNILE9BQU07UUFDUixDQUFDO1FBRUQsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUN0RixLQUFLLE1BQU0sVUFBVSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDMUMsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLFVBQVUsRUFBQyxDQUFDLENBQUE7WUFDaEUsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUM7UUFDckMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFDL0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFBO1FBQ3ZDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsYUFBYSxVQUFVLE1BQU0sQ0FBQyxDQUFBO1FBQ3pFLE1BQU0sWUFBWSxHQUFHLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLENBQUMsQ0FBQTtRQUVqRSxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBQyxFQUFFLEVBQUUsWUFBWSxFQUFDLENBQUMsQ0FBQTtJQUN2QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmFzZUNvbW1hbmQgZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL2NsaS9iYXNlLWNvbW1hbmQuanNcIlxuaW1wb3J0IGNvbW1hbmRBcmd1bWVudHMgZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL2NsaS9jb21tYW5kLWFyZ3VtZW50cy5qc1wiXG5pbXBvcnQgRGF0YWJhc2VHZW5lcmF0aW9uQ29udGV4dCBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vLi4vZGF0YWJhc2UvZ2VuZXJhdGlvbi1jb250ZXh0LmpzXCJcbmltcG9ydCBmcyBmcm9tIFwiZnMvcHJvbWlzZXNcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuaW1wb3J0IFN0cnVjdHVyZVNxbExvYWRlciBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vLi4vZGF0YWJhc2Uvc3RydWN0dXJlLXNxbC1sb2FkZXIuanNcIlxuXG4vKiogTm9kZSBDTEkgY29tbWFuZCBmb3IgbG9hZGluZyBEQiBzdHJ1Y3R1cmUgU1FMIGZpbGVzLiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGJTY2hlbWFMb2FkIGV4dGVuZHMgQmFzZUNvbW1hbmQge1xuICAvKipcbiAgICogUnVucyBleGVjdXRlLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gKi9cbiAgYXN5bmMgZXhlY3V0ZSgpIHtcbiAgICBjb25zdCBwYXJzZWRBcmd1bWVudHMgPSBjb21tYW5kQXJndW1lbnRzKHtcbiAgICAgIGRlZmluaXRpb246IHt2YWx1ZU9wdGlvbnM6IFtcIi0tdGVuYW50XCJdfSxcbiAgICAgIHByb2Nlc3NBcmdzOiB0aGlzLnByb2Nlc3NBcmdzIHx8IFtdXG4gICAgfSlcbiAgICBjb25zdCB0ZW5hbnREYXRhYmFzZUlkZW50aWZpZXIgPSBwYXJzZWRBcmd1bWVudHMudGVuYW50XG5cbiAgICBpZiAodHlwZW9mIHRlbmFudERhdGFiYXNlSWRlbnRpZmllciA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgY29uc3QgY29udGV4dCA9IGF3YWl0IERhdGFiYXNlR2VuZXJhdGlvbkNvbnRleHQucmVzb2x2ZSh7XG4gICAgICAgIGNvbmZpZ3VyYXRpb246IHRoaXMuZ2V0Q29uZmlndXJhdGlvbigpLFxuICAgICAgICBkYXRhYmFzZUlkZW50aWZpZXI6IHRlbmFudERhdGFiYXNlSWRlbnRpZmllclxuICAgICAgfSlcblxuICAgICAgYXdhaXQgY29udGV4dC5ydW4oe25hbWU6IFwiREIgc2VsZWN0ZWQgdGVuYW50IHNjaGVtYSBsb2FkXCIsIGNhbGxiYWNrOiBhc3luYyAoZGIpID0+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5sb2FkU3RydWN0dXJlU3FsKHtkYiwgaWRlbnRpZmllcjogY29udGV4dC5kYXRhYmFzZUlkZW50aWZpZXIoKX0pXG4gICAgICB9fSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGF3YWl0IHRoaXMuZ2V0Q29uZmlndXJhdGlvbigpLmVuc3VyZUNvbm5lY3Rpb25zKHtuYW1lOiBcIkRCIHNjaGVtYSBsb2FkXCJ9LCBhc3luYyAoZGJzKSA9PiB7XG4gICAgICBmb3IgKGNvbnN0IGlkZW50aWZpZXIgb2YgT2JqZWN0LmtleXMoZGJzKSkge1xuICAgICAgICBhd2FpdCB0aGlzLmxvYWRTdHJ1Y3R1cmVTcWwoe2RiOiBkYnNbaWRlbnRpZmllcl0sIGlkZW50aWZpZXJ9KVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgb25lIGlkZW50aWZpZXIncyBleHBsaWNpdCBzdHJ1Y3R1cmUgZmlsZSBpbnRvIG9uZSBzZWxlY3RlZCBjb25uZWN0aW9uLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIExvYWQgYXJndW1lbnRzLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uLy4uLy4uLy4uLy4uLy4uL2RhdGFiYXNlL2RyaXZlcnMvYmFzZS5qc1wiKS5kZWZhdWx0fSBhcmdzLmRiIC0gVGFyZ2V0IGNvbm5lY3Rpb24uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLmlkZW50aWZpZXIgLSBMb2dpY2FsIGRhdGFiYXNlIGlkZW50aWZpZXIgdXNlZCBpbiB0aGUgZmlsZSBuYW1lLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyBhZnRlciBsb2FkaW5nLlxuICAgKi9cbiAgYXN5bmMgbG9hZFN0cnVjdHVyZVNxbCh7ZGIsIGlkZW50aWZpZXJ9KSB7XG4gICAgY29uc3QgZGJEaXIgPSBwYXRoLmpvaW4odGhpcy5kaXJlY3RvcnkoKSwgXCJkYlwiKVxuICAgIGNvbnN0IGxvYWRlciA9IG5ldyBTdHJ1Y3R1cmVTcWxMb2FkZXIoKVxuICAgIGNvbnN0IHN0cnVjdHVyZUZpbGVQYXRoID0gcGF0aC5qb2luKGRiRGlyLCBgc3RydWN0dXJlLSR7aWRlbnRpZmllcn0uc3FsYClcbiAgICBjb25zdCBzdHJ1Y3R1cmVTcWwgPSBhd2FpdCBmcy5yZWFkRmlsZShzdHJ1Y3R1cmVGaWxlUGF0aCwgXCJ1dGY4XCIpXG5cbiAgICBhd2FpdCBsb2FkZXIubG9hZCh7ZGIsIHN0cnVjdHVyZVNxbH0pXG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
import BaseCommand from "../../../../../cli/base-command.js";
|
|
2
|
+
import DatabaseGenerationContext from "../../../../../database/generation-context.js";
|
|
2
3
|
export default class DbGenerateModel extends BaseCommand {
|
|
3
4
|
execute(): Promise<void>;
|
|
5
|
+
/**
|
|
6
|
+
* Generates model bases from explicit connections.
|
|
7
|
+
* @param {object} args - Generation arguments.
|
|
8
|
+
* @param {boolean} args.allowMissingTables - Whether absent tables are skipped.
|
|
9
|
+
* @param {Record<string, import("../../../../../database/drivers/base.js").default>} args.connections - Connections keyed by logical identifier.
|
|
10
|
+
* @param {DatabaseGenerationContext} [args.context] - Selected tenant database context.
|
|
11
|
+
* @returns {Promise<void>} - Resolves after writing generated bases.
|
|
12
|
+
*/
|
|
13
|
+
generateBaseModels({ allowMissingTables, connections, context }: {
|
|
14
|
+
allowMissingTables: boolean;
|
|
15
|
+
connections: Record<string, import("../../../../../database/drivers/base.js").default>;
|
|
16
|
+
context?: DatabaseGenerationContext;
|
|
17
|
+
}): Promise<void>;
|
|
4
18
|
/**
|
|
5
19
|
* Runs js doc type from column.
|
|
6
20
|
* @param {import("../../../../../database/drivers/base-column.js").default} column - Column.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-models.d.ts","sourceRoot":"","sources":["../../../../../../../src/environment-handlers/node/cli/commands/generate/base-models.js"],"names":[],"mappings":"AAEA,OAAO,WAAW,MAAM,oCAAoC,CAAA;
|
|
1
|
+
{"version":3,"file":"base-models.d.ts","sourceRoot":"","sources":["../../../../../../../src/environment-handlers/node/cli/commands/generate/base-models.js"],"names":[],"mappings":"AAEA,OAAO,WAAW,MAAM,oCAAoC,CAAA;AAE5D,OAAO,yBAAyB,MAAM,+CAA+C,CAAA;AA4DrF,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,WAAW;IAChD,OAAO,kBAyCZ;IAED;;;;;;;OAOG;IACG,kBAAkB,CAAC,EAAC,kBAAkB,EAAE,WAAW,EAAE,OAAO,EAAC,EALhE;QAAsB,kBAAkB,EAAhC,OAAO,CACf;QAAwF,WAAW,EAA3F,MAAM,CAAC,MAAM,EAAE,OAAO,yCAAyC,EAAE,OAAO,CAAC,CACjF;QAAyC,OAAO,AAAhD,CACA,EADQ,yBAAyB,CACjC;KAEgE,GAFtD,OAAO,CAAC,IAAI,CAAC,CAgazB;IAED;;;;;OAKG;IACH,mBAAmB,CAAC,MAAM,EAJf,OAAO,gDAAgD,EAAE,OAI1C,EAAE,UAAU,EAH3B,cAAc,yCAAyC,EAAE,OAG9B,GAFzB,MAAM,GAAG,SAAS,CAa9B;IAED;;;;;OAKG;IACH,yBAAyB,CAAC,MAAM,EAJrB,OAAO,gDAAgD,EAAE,OAIpC,EAAE,UAAU,EAHjC,cAAc,yCAAyC,EAAE,OAGxB,GAF/B,MAAM,GAAG,SAAS,CAU9B;IAED;;;;;;OAMG;IACG,gCAAgC,CAAC,EAAC,UAAU,EAAE,SAAS,EAAC,EAJ3D;QAA+E,UAAU,EAAjF,cAAc,yCAAyC,EAAE,OAAO,CACxE;QAAqB,SAAS,EAAtB,MAAM,CACd;KAE2D,GAFjD,OAAO,CAAC,KAAK,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC,CAyBlG;IAED;;;;;OAKG;IACH,6BAA6B,CAAC,EAAC,UAAU,EAAC,EAHvC;QAA+E,UAAU,EAAjF,cAAc,yCAAyC,EAAE,OAAO,CACxE;KAEuC,GAF7B,KAAK,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAC,CAAC,CAyBzF;CACF"}
|