vona-module-a-version 5.0.43 → 5.0.44

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/dist/index.js CHANGED
@@ -131,9 +131,9 @@ let ServiceDatabase = (_dec$7 = Service(), _dec2$7 = BeanInfo({
131
131
  get configDatabase() {
132
132
  return this.app.config.database;
133
133
  }
134
- getDatabasePrefix(configInstanceBase) {
135
- const instanceName = configInstanceBase?.isolate ? `isolate${__separator}${configInstanceBase.name}` : 'share';
136
- return `vona${__separator}test${__separator}${this.app.name}${__separator}${instanceName}${__separator}`;
134
+ getDatabasePrefix(instanceName, configInstanceBase) {
135
+ const prefix = configInstanceBase?.isolate ? `isolate${__separator}${instanceName}` : 'share';
136
+ return `vona${__separator}test${__separator}${this.app.name}${__separator}${prefix}${__separator}`;
137
137
  }
138
138
  async databaseInitStartup() {
139
139
  // database
@@ -143,13 +143,13 @@ let ServiceDatabase = (_dec$7 = Service(), _dec2$7 = BeanInfo({
143
143
  // database
144
144
  await this.__prepareDatabases(false);
145
145
  }
146
- async prepareDatabase(clientName, versionStart, configInstanceBase) {
146
+ async prepareDatabase(clientName, versionStart, instanceName, configInstanceBase) {
147
147
  await this.bean.database.switchDb(async () => {
148
- await this.__prepareDatabase(versionStart, configInstanceBase);
148
+ await this.__prepareDatabase(versionStart, instanceName, configInstanceBase);
149
149
  }, clientName);
150
150
  }
151
- async __fetchDatabases(client, configInstanceBase) {
152
- const databasePrefix = this.getDatabasePrefix(configInstanceBase);
151
+ async __fetchDatabases(client, instanceName, configInstanceBase) {
152
+ const databasePrefix = this.getDatabasePrefix(instanceName, configInstanceBase);
153
153
  // dbs
154
154
  let dbs = await client.connection.schema.fetchDatabases(databasePrefix);
155
155
  // filter
@@ -160,8 +160,8 @@ let ServiceDatabase = (_dec$7 = Service(), _dec2$7 = BeanInfo({
160
160
  // ok
161
161
  return dbs;
162
162
  }
163
- async __createDatabase(client, configInstanceBase) {
164
- const databasePrefix = this.getDatabasePrefix(configInstanceBase);
163
+ async __createDatabase(client, instanceName, configInstanceBase) {
164
+ const databasePrefix = this.getDatabasePrefix(instanceName, configInstanceBase);
165
165
  // create
166
166
  const databaseName = `${databasePrefix}${moment().format(__timeFormat)}`;
167
167
  await client.connection.schema.createDatabase(databaseName);
@@ -171,24 +171,27 @@ let ServiceDatabase = (_dec$7 = Service(), _dec2$7 = BeanInfo({
171
171
  // default
172
172
  await this.prepareDatabase('default', versionStart);
173
173
  // isolate
174
- for (const configInstanceBase of this.app.config.instances) {
174
+ for (const key in this.app.config.instance.instances) {
175
+ const instanceName = key;
176
+ const configInstanceBase = this.app.config.instance.instances[instanceName];
177
+ if (configInstanceBase === false) continue;
175
178
  if (!configInstanceBase.isolate) continue;
176
- if (!configInstanceBase.isolateClient) throw new Error(`should specify isolateClient for isolate instance: ${configInstanceBase.name}`);
177
- await this.prepareDatabase(configInstanceBase.isolateClient, versionStart, configInstanceBase);
179
+ if (!configInstanceBase.isolateClient) throw new Error(`should specify isolateClient for isolate instance: ${instanceName}`);
180
+ await this.prepareDatabase(configInstanceBase.isolateClient, versionStart, instanceName, configInstanceBase);
178
181
  }
179
182
  }
180
- async __prepareDatabase(versionStart, configInstanceBase) {
181
- await this.__prepareDatabaseInner(configInstanceBase);
183
+ async __prepareDatabase(versionStart, instanceName, configInstanceBase) {
184
+ await this.__prepareDatabaseInner(instanceName, configInstanceBase);
182
185
  if (versionStart) {
183
186
  await this.scope.service.version.__start();
184
187
  }
185
188
  }
186
- async __prepareDatabaseInner(configInstanceBase) {
189
+ async __prepareDatabaseInner(instanceName, configInstanceBase) {
187
190
  if (this.app.meta.isProd) {
188
191
  // donothing
189
192
  return;
190
193
  }
191
- const databasePrefix = this.getDatabasePrefix(configInstanceBase);
194
+ const databasePrefix = this.getDatabasePrefix(instanceName, configInstanceBase);
192
195
  // client
193
196
  const client = this.bean.database.current.client;
194
197
  // get current database name
@@ -203,9 +206,9 @@ let ServiceDatabase = (_dec$7 = Service(), _dec2$7 = BeanInfo({
203
206
  // donothing
204
207
  return;
205
208
  }
206
- const dbs = await this.__fetchDatabases(client, configInstanceBase);
209
+ const dbs = await this.__fetchDatabases(client, instanceName, configInstanceBase);
207
210
  if (dbs.length === 0) {
208
- databaseName = await this.__createDatabase(client, configInstanceBase);
211
+ databaseName = await this.__createDatabase(client, instanceName, configInstanceBase);
209
212
  } else {
210
213
  databaseName = dbs[0].name;
211
214
  }
@@ -222,12 +225,12 @@ let ServiceDatabase = (_dec$7 = Service(), _dec2$7 = BeanInfo({
222
225
  return;
223
226
  }
224
227
  // drop old databases
225
- const dbs = await this.__fetchDatabases(client, configInstanceBase);
228
+ const dbs = await this.__fetchDatabases(client, instanceName, configInstanceBase);
226
229
  for (const db of dbs) {
227
230
  await client.connection.schema.dropDatabase(db.name);
228
231
  }
229
232
  // create database
230
- const databaseName = await this.__createDatabase(client, configInstanceBase);
233
+ const databaseName = await this.__createDatabase(client, instanceName, configInstanceBase);
231
234
  // set config and reload client
232
235
  await client.changeConfigConnectionAndReloadWorker(databaseName);
233
236
  // database ready
@@ -1,12 +1,13 @@
1
+ import type { IInstanceRecord } from 'vona';
1
2
  import type { ConfigInstanceBase } from 'vona-module-a-instance';
2
3
  import type { IDatabaseClientRecord } from 'vona-module-a-orm';
3
4
  import { BeanBase } from 'vona';
4
5
  export declare class ServiceDatabase extends BeanBase {
5
6
  get configDatabase(): import("vona-module-a-orm").ConfigDatabase;
6
- getDatabasePrefix(configInstanceBase?: ConfigInstanceBase): string;
7
+ getDatabasePrefix(instanceName?: keyof IInstanceRecord, configInstanceBase?: ConfigInstanceBase): string;
7
8
  databaseInitStartup(): Promise<void>;
8
9
  databaseNameStartup(): Promise<void>;
9
- prepareDatabase(clientName: keyof IDatabaseClientRecord, versionStart: boolean, configInstanceBase?: ConfigInstanceBase): Promise<void>;
10
+ prepareDatabase(clientName: keyof IDatabaseClientRecord, versionStart: boolean, instanceName?: keyof IInstanceRecord, configInstanceBase?: ConfigInstanceBase): Promise<void>;
10
11
  private __fetchDatabases;
11
12
  private __createDatabase;
12
13
  private __prepareDatabases;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "vona-module-a-version",
3
3
  "type": "module",
4
- "version": "5.0.43",
4
+ "version": "5.0.44",
5
5
  "vonaModule": {
6
6
  "fileVersion": 1,
7
7
  "dependencies": {},