@zakodium/adonis-mongodb 0.14.4 → 0.15.0

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.
@@ -7,6 +7,7 @@ declare module '@ioc:Zakodium/Mongodb/Migration' {
7
7
  dropIndex(collectionName: string, indexName: string, options?: Omit<DropIndexesOptions, 'session'>): void;
8
8
  defer(callback: (db: Db, client: ClientSession) => Promise<void>): void;
9
9
  abstract up(): void;
10
- execUp(): Promise<void>;
10
+ afterUpSuccess?(): unknown;
11
+ execUp(session: ClientSession): Promise<void>;
11
12
  }
12
13
  }
@@ -70,15 +70,22 @@ class MongodbMigrate extends MigrationCommand_1.default {
70
70
  if (value.length === 1) {
71
71
  newBatch = value[0].batch + 1;
72
72
  }
73
- let lastTransactionError = null;
73
+ let lastMigrationError = null;
74
74
  for (const { name, file } of unregisteredMigrations) {
75
+ let migration;
76
+ try {
77
+ const { Migration: MigrationConstructor, description } = await this.importMigration(file);
78
+ this.logger.info(`Executing migration: ${name}${description ? ` - ${description}` : ''}`);
79
+ migration = new MigrationConstructor(connection.name, this.logger);
80
+ }
81
+ catch (error) {
82
+ lastMigrationError = error;
83
+ break;
84
+ }
75
85
  // eslint-disable-next-line @typescript-eslint/no-loop-func
76
86
  await connection.transaction(async (session) => {
77
87
  try {
78
- const { Migration, description } = await this.importMigration(file);
79
- this.logger.info(`Executing migration: ${name}${description ? ` - ${description}` : ''}`);
80
- const migration = new Migration(connection.name, this.logger, session);
81
- await migration.execUp();
88
+ await migration.execUp(session);
82
89
  await migrationColl.insertOne({
83
90
  _id: new mongodb_1.ObjectId(),
84
91
  name,
@@ -87,13 +94,24 @@ class MongodbMigrate extends MigrationCommand_1.default {
87
94
  }, { session });
88
95
  }
89
96
  catch (error) {
90
- lastTransactionError = error;
97
+ lastMigrationError = error;
91
98
  await session.abortTransaction();
92
99
  }
93
100
  });
94
- if (lastTransactionError) {
101
+ if (lastMigrationError) {
95
102
  break;
96
103
  }
104
+ if (migration.afterUpSuccess) {
105
+ try {
106
+ await migration.afterUpSuccess();
107
+ }
108
+ catch (error) {
109
+ this.logger.warning(`Migration's afterUpSuccess call failed`);
110
+ // TODO: See if there can be a way in Ace commands to print error stack traces
111
+ // eslint-disable-next-line no-console
112
+ console.warn(error);
113
+ }
114
+ }
97
115
  successfullyExecuted++;
98
116
  }
99
117
  await migrationLockColl.updateOne({
@@ -104,18 +122,18 @@ class MongodbMigrate extends MigrationCommand_1.default {
104
122
  });
105
123
  if (successfullyExecuted > 0) {
106
124
  const remainingMigrations = unregisteredMigrations.length - successfullyExecuted;
107
- this.logger.info(`Successfully executed ${successfullyExecuted} migrations${lastTransactionError ? `, 1 migration failed` : ''}${remainingMigrations > 0
108
- ? `, ${remainingMigrations - (lastTransactionError ? 1 : 0)} pending migrations remaining`
125
+ this.logger.info(`Successfully executed ${successfullyExecuted} migrations${lastMigrationError ? `, 1 migration failed` : ''}${remainingMigrations > 0
126
+ ? `, ${remainingMigrations - (lastMigrationError ? 1 : 0)} pending migrations remaining`
109
127
  : ''}`);
110
128
  }
111
- else if (lastTransactionError === null) {
129
+ else if (lastMigrationError === null) {
112
130
  this.logger.info('No pending migration');
113
131
  }
114
- if (lastTransactionError) {
132
+ if (lastMigrationError) {
115
133
  this.logger.error('Migration failed');
116
134
  // TODO: See if there can be a way in Ace commands to print error stack traces
117
135
  // eslint-disable-next-line no-console
118
- console.error(lastTransactionError);
136
+ console.error(lastMigrationError);
119
137
  this.exitCode = 1;
120
138
  }
121
139
  }
@@ -140,4 +158,4 @@ __decorate([
140
158
  __metadata("design:returntype", Promise)
141
159
  ], MongodbMigrate.prototype, "run", null);
142
160
  exports.default = MongodbMigrate;
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9uZ29kYk1pZ3JhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9jb21tYW5kcy9Nb25nb2RiTWlncmF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0VBQXlEO0FBQ3pELHFDQUFtQztBQUluQyw0RUFHaUM7QUFjakMsTUFBcUIsY0FBZSxTQUFRLDBCQUFnQjtJQU9sRCxLQUFLLENBQUMsaUJBQWlCLENBQUMsRUFBb0I7UUFDbEQsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFL0QsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLFVBQVUsQ0FBQyxVQUFVLENBQ25ELDhDQUEyQixDQUM1QixDQUFDO1FBRUYsTUFBTSxhQUFhLEdBQUcsTUFBTSxVQUFVLENBQUMsVUFBVSxDQUMvQywwQ0FBdUIsQ0FDeEIsQ0FBQztRQUVGLE1BQU0sSUFBSSxHQUFHLE1BQU0saUJBQWlCLENBQUMsU0FBUyxDQUM1QztZQUNFLEdBQUcsRUFBRSxnQkFBZ0I7U0FDdEIsRUFDRDtZQUNFLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7U0FDeEIsRUFDRDtZQUNFLE1BQU0sRUFBRSxJQUFJO1NBQ2IsQ0FDRixDQUFDO1FBRUYsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLENBQUMsRUFBRTtZQUN4RCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1lBQ3BELElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1lBQ2xCLE9BQU87U0FDUjtRQUVELE1BQU0sYUFBYSxHQUFHLE1BQU0sYUFBYSxDQUFD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
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9uZ29kYk1pZ3JhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9jb21tYW5kcy9Nb25nb2RiTWlncmF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0VBQXlEO0FBQ3pELHFDQUFtQztBQUtuQyw0RUFHaUM7QUFjakMsTUFBcUIsY0FBZSxTQUFRLDBCQUFnQjtJQU9sRCxLQUFLLENBQUMsaUJBQWlCLENBQUMsRUFBb0I7UUFDbEQsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFL0QsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLFVBQVUsQ0FBQyxVQUFVLENBQ25ELDhDQUEyQixDQUM1QixDQUFDO1FBRUYsTUFBTSxhQUFhLEdBQUcsTUFBTSxVQUFVLENBQUMsVUFBVSxDQUMvQywwQ0FBdUIsQ0FDeEIsQ0FBQztRQUVGLE1BQU0sSUFBSSxHQUFHLE1BQU0saUJBQWlCLENBQUMsU0FBUyxDQUM1QztZQUNFLEdBQUcsRUFBRSxnQkFBZ0I7U0FDdEIsRUFDRDtZQUNFLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7U0FDeEIsRUFDRDtZQUNFLE1BQU0sRUFBRSxJQUFJO1NBQ2IsQ0FDRixDQUFDO1FBRUYsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLENBQUMsRUFBRTtZQUN4RCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1lBQ3BELElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1lBQ2xCLE9BQU87U0FDUjtRQUVELE1BQU0sYUFBYSxHQUFHLE1BQU0sYUFBYSxDQUFD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
@@ -1,13 +1,12 @@
1
1
  import { BaseCommand } from '@adonisjs/core/build/standalone';
2
2
  import { Logger } from '@poppinss/cliui/build/src/Logger';
3
- import { ClientSession } from 'mongodb';
4
3
  import type { ConnectionContract, DatabaseContract, MongodbConnectionConfig } from '@ioc:Zakodium/Mongodb/Database';
5
4
  import type BaseMigration from '@ioc:Zakodium/Mongodb/Migration';
6
5
  import { MigrationDescription } from './transformMigrations';
7
6
  export declare const migrationCollectionName = "__adonis_mongodb";
8
7
  export declare const migrationLockCollectionName = "__adonis_mongodb_lock";
9
8
  interface MigrationModule {
10
- default: new (connection: string | undefined, logger: Logger, session: ClientSession) => BaseMigration;
9
+ default: new (connection: string | undefined, logger: Logger) => BaseMigration;
11
10
  description?: string;
12
11
  }
13
12
  export default abstract class MigrationCommand extends BaseCommand {
@@ -94,4 +94,4 @@ __decorate([
94
94
  __metadata("design:type", String)
95
95
  ], MigrationCommand.prototype, "connection", void 0);
96
96
  exports.default = MigrationCommand;
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uQ29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2NvbW1hbmRzL3V0aWwvTWlncmF0aW9uQ29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUEyQztBQUMzQywwREFBNkI7QUFFN0IsZ0VBQXFFO0FBV3JFLGdGQUUrQjtBQUUvQixNQUFNLE1BQU0sR0FBRyxvQkFBb0IsQ0FBQztBQUV2QixRQUFBLHVCQUF1QixHQUFHLGtCQUFrQixDQUFDO0FBQzdDLFFBQUEsMkJBQTJCLEdBQUcsdUJBQXVCLENBQUM7QUFXbkUsTUFBOEIsZ0JBQWlCLFNBQVEsd0JBQVc7SUFXdEQsS0FBSyxDQUFDLGFBQWEsQ0FDM0IsRUFBb0I7UUFFcEIsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3ZELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNmLCtDQUErQyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQ2xFLENBQUM7WUFDRixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztZQUNsQixNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNuQjtRQUNELE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVTLEtBQUssQ0FBQyxhQUFhLENBQzNCLE1BQStCO1FBRS9CLE1BQU0sT0FBTyxHQUNYLE1BQU0sQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUMvQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVU7WUFDbkIsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFZixNQUFNLGlCQUFpQixHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDekMsT0FBTzthQUNKLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsbUJBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7YUFDNUQsR0FBRyxDQUFDLEtBQUssRUFBRSxjQUFjLEVBQUUsRUFBRTtZQUM1QixJQUFJO2dCQUNGLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBQSxrQkFBTyxFQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUM1QyxPQUFPLEtBQUs7cUJBQ1QsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7b0JBQ2YsT0FBTztvQkFDTCx3REFBd0Q7b0JBQ3hELGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUMxRCxDQUFDO2dCQUNKLENBQUMsQ0FBQztxQkFDRCxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLG1CQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQ25EO1lBQUMsTUFBTTtnQkFDTixPQUFPLEVBQUUsQ0FBQzthQUNYO1FBQ0gsQ0FBQyxDQUFDLENBQ0wsQ0FBQztRQUVGLE9BQU8sSUFBQSw2QkFBbUIsRUFBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVTLEtBQUssQ0FBQyxlQUFlLENBQzdCLElBQVk7UUFFWixNQUFNLE1BQU0sR0FBb0IseUJBQWEsSUFBSSx1Q0FBQyxDQUFDO1FBQ25ELE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxHQUFHLE1BQU0sQ0FBQztRQUNuRCxJQUFJLENBQUMsU0FBUyxJQUFJLE9BQU8sU0FBUyxLQUFLLFVBQVUsRUFBRTtZQUNqRCxNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixJQUFJLDhCQUE4QixDQUFDLENBQUM7U0FDckU7UUFDRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ3BDLENBQUM7O0FBL0RhLHlCQUFRLEdBQUc7SUFDdkIsT0FBTyxFQUFFLElBQUk7Q0FDZCxDQUFDO0FBRVksNEJBQVcsR0FBRyxhQUFhLENBQUM7QUFDNUIsNEJBQVcsR0FBRyxhQUFhLENBQUM7QUFHbkM7SUFETixrQkFBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFdBQVcsRUFBRSw4Q0FBOEMsRUFBRSxDQUFDOztvREFDcEQ7a0JBVEUsZ0JBQWdCIn0=
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uQ29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2NvbW1hbmRzL3V0aWwvTWlncmF0aW9uQ29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUEyQztBQUMzQywwREFBNkI7QUFFN0IsZ0VBQXFFO0FBVXJFLGdGQUUrQjtBQUUvQixNQUFNLE1BQU0sR0FBRyxvQkFBb0IsQ0FBQztBQUV2QixRQUFBLHVCQUF1QixHQUFHLGtCQUFrQixDQUFDO0FBQzdDLFFBQUEsMkJBQTJCLEdBQUcsdUJBQXVCLENBQUM7QUFVbkUsTUFBOEIsZ0JBQWlCLFNBQVEsd0JBQVc7SUFXdEQsS0FBSyxDQUFDLGFBQWEsQ0FDM0IsRUFBb0I7UUFFcEIsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3ZELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNmLCtDQUErQyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQ2xFLENBQUM7WUFDRixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztZQUNsQixNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNuQjtRQUNELE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVTLEtBQUssQ0FBQyxhQUFhLENBQzNCLE1BQStCO1FBRS9CLE1BQU0sT0FBTyxHQUNYLE1BQU0sQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUMvQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVU7WUFDbkIsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFZixNQUFNLGlCQUFpQixHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDekMsT0FBTzthQUNKLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsbUJBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7YUFDNUQsR0FBRyxDQUFDLEtBQUssRUFBRSxjQUFjLEVBQUUsRUFBRTtZQUM1QixJQUFJO2dCQUNGLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBQSxrQkFBTyxFQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUM1QyxPQUFPLEtBQUs7cUJBQ1QsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7b0JBQ2YsT0FBTztvQkFDTCx3REFBd0Q7b0JBQ3hELGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUMxRCxDQUFDO2dCQUNKLENBQUMsQ0FBQztxQkFDRCxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLG1CQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQ25EO1lBQUMsTUFBTTtnQkFDTixPQUFPLEVBQUUsQ0FBQzthQUNYO1FBQ0gsQ0FBQyxDQUFDLENBQ0wsQ0FBQztRQUVGLE9BQU8sSUFBQSw2QkFBbUIsRUFBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVTLEtBQUssQ0FBQyxlQUFlLENBQzdCLElBQVk7UUFFWixNQUFNLE1BQU0sR0FBb0IseUJBQWEsSUFBSSx1Q0FBQyxDQUFDO1FBQ25ELE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxHQUFHLE1BQU0sQ0FBQztRQUNuRCxJQUFJLENBQUMsU0FBUyxJQUFJLE9BQU8sU0FBUyxLQUFLLFVBQVUsRUFBRTtZQUNqRCxNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixJQUFJLDhCQUE4QixDQUFDLENBQUM7U0FDckU7UUFDRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ3BDLENBQUM7O0FBL0RhLHlCQUFRLEdBQUc7SUFDdkIsT0FBTyxFQUFFLElBQUk7Q0FDZCxDQUFDO0FBRVksNEJBQVcsR0FBRyxhQUFhLENBQUM7QUFDNUIsNEJBQVcsR0FBRyxhQUFhLENBQUM7QUFHbkM7SUFETixrQkFBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFdBQVcsRUFBRSw4Q0FBOEMsRUFBRSxDQUFDOztvREFDcEQ7a0JBVEUsZ0JBQWdCIn0=
@@ -10,11 +10,10 @@ var MigrationType;
10
10
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
11
11
  function createMigration(Database) {
12
12
  class Migration {
13
- constructor(connection, logger, session) {
13
+ constructor(connection, logger) {
14
14
  this.$operations = [];
15
15
  this.$connection = Database.connection(connection);
16
16
  this.$logger = logger;
17
- this.$session = session;
18
17
  }
19
18
  createCollections(collectionNames) {
20
19
  for (const collectionName of collectionNames) {
@@ -49,12 +48,12 @@ function createMigration(Database) {
49
48
  callback,
50
49
  });
51
50
  }
52
- async execUp() {
51
+ async execUp(session) {
53
52
  this.up();
54
- await this._createCollections();
55
- await this._dropIndexes();
56
- await this._createIndexes();
57
- await this._executeDeferred();
53
+ await this._createCollections(session);
54
+ await this._dropIndexes(session);
55
+ await this._createIndexes(session);
56
+ await this._executeDeferred(session);
58
57
  }
59
58
  async _listCollections() {
60
59
  if (this.$collectionList)
@@ -68,31 +67,31 @@ function createMigration(Database) {
68
67
  this.$collectionList = list.map((element) => element.name);
69
68
  return this.$collectionList;
70
69
  }
71
- async _createCollections() {
70
+ async _createCollections(session) {
72
71
  const db = await this.$connection.database();
73
72
  for (const op of this.$operations.filter(isCreateCollection)) {
74
73
  this.$logger.info(`Creating collection ${op.collectionName}`);
75
74
  await db.createCollection(op.collectionName, {
76
- session: this.$session,
75
+ session,
77
76
  });
78
77
  }
79
78
  }
80
- async _executeDeferred() {
79
+ async _executeDeferred(session) {
81
80
  const db = await this.$connection.database();
82
81
  for (const op of this.$operations.filter(isCustom)) {
83
- await op.callback(db, this.$session);
82
+ await op.callback(db, session);
84
83
  }
85
84
  }
86
- async _dropIndexes() {
85
+ async _dropIndexes(session) {
87
86
  const db = await this.$connection.database();
88
87
  for (const op of this.$operations.filter(isDropIndex)) {
89
88
  this.$logger.info(`Dropping index ${op.indexName} on ${op.collectionName}`);
90
89
  const collection = db.collection(op.collectionName);
91
90
  // Index deletion cannot be done in a transaction.
92
- await collection.dropIndex(op.indexName, { ...op.options });
91
+ await collection.dropIndex(op.indexName, { ...op.options, session });
93
92
  }
94
93
  }
95
- async _createIndexes() {
94
+ async _createIndexes(session) {
96
95
  const db = await this.$connection.database();
97
96
  const collections = await this._listCollections();
98
97
  for (const op of this.$operations.filter(isCreateIndex)) {
@@ -102,7 +101,7 @@ function createMigration(Database) {
102
101
  // Index creation will fail if collection pre-exists the transaction.
103
102
  session: collections.includes(op.collectionName)
104
103
  ? undefined
105
- : this.$session,
104
+ : session,
106
105
  });
107
106
  }
108
107
  }
@@ -122,4 +121,4 @@ function isDropIndex(op) {
122
121
  function isCustom(op) {
123
122
  return op.type === MigrationType.Custom;
124
123
  }
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL01pZ3JhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWNBLElBQUssYUFLSjtBQUxELFdBQUssYUFBYTtJQUNoQixzREFBcUMsQ0FBQTtJQUNyQyx3Q0FBdUIsQ0FBQTtJQUN2Qiw0Q0FBMkIsQ0FBQTtJQUMzQixrQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBTEksYUFBYSxLQUFiLGFBQWEsUUFLakI7QUFnQ0QsOERBQThEO0FBQzlELFNBQXdCLGVBQWUsQ0FBQyxRQUEwQjtJQUNoRSxNQUFlLFNBQVM7UUFPdEIsWUFDRSxVQUE4QixFQUM5QixNQUFjLEVBQ2QsT0FBc0I7WUFUaEIsZ0JBQVcsR0FBeUIsRUFBRSxDQUFDO1lBVzdDLElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNuRCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztZQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUMxQixDQUFDO1FBRU0saUJBQWlCLENBQUMsZUFBeUI7WUFDaEQsS0FBSyxNQUFNLGNBQWMsSUFBSSxlQUFlLEVBQUU7Z0JBQzVDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQzthQUN2QztRQUNILENBQUM7UUFFTSxnQkFBZ0IsQ0FBQyxjQUFzQjtZQUM1QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztnQkFDcEIsSUFBSSxFQUFFLGFBQWEsQ0FBQyxnQkFBZ0I7Z0JBQ3BDLGNBQWM7YUFDZixDQUFDLENBQUM7UUFDTCxDQUFDO1FBRU0sU0FBUyxDQUNkLGNBQXNCLEVBQ3RCLFNBQWlCLEVBQ2pCLE9BQTRCO1lBRTVCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO2dCQUNwQixJQUFJLEVBQUUsYUFBYSxDQUFDLFNBQVM7Z0JBQzdCLGNBQWM7Z0JBQ2QsU0FBUztnQkFDVCxPQUFPO2FBQ1IsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVNLFdBQVcsQ0FDaEIsY0FBc0IsRUFDdEIsS0FBeUIsRUFDekIsT0FBOEI7WUFFOUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7Z0JBQ3BCLElBQUksRUFBRSxhQUFhLENBQUMsV0FBVztnQkFDL0IsY0FBYztnQkFDZCxLQUFLO2dCQUNMLE9BQU87YUFDUixDQUFDLENBQUM7UUFDTCxDQUFDO1FBRU0sS0FBSyxDQUFDLFFBQTJEO1lBQ3RFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO2dCQUNwQixJQUFJLEVBQUUsYUFBYSxDQUFDLE1BQU07Z0JBQzFCLFFBQVE7YUFDVCxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRU0sS0FBSyxDQUFDLE1BQU07WUFDakIsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ1YsTUFBTSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUNoQyxNQUFNLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMxQixNQUFNLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUM1QixNQUFNLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ2hDLENBQUM7UUFFTyxLQUFLLENBQUMsZ0JBQWdCO1lBQzVCLElBQUksSUFBSSxDQUFDLGVBQWU7Z0JBQUUsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO1lBQ3RELE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM3QyxNQUFNLElBQUksR0FBRyxNQUFNLEVBQUU7aUJBQ2xCLGVBQWUsQ0FBQyxTQUFTLEVBQUU7Z0JBQzFCLFFBQVEsRUFBRSxJQUFJO2FBQ2YsQ0FBQztpQkFDRCxPQUFPLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUM5QixDQUFDO1FBRU8sS0FBSyxDQUFDLGtCQUFrQjtZQUM5QixNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDN0MsS0FBSyxNQUFNLEVBQUUsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO2dCQUM1RCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7Z0JBQzlELE1BQU0sRUFBRSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxjQUFjLEVBQUU7b0JBQzNDLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUTtpQkFDdkIsQ0FBQyxDQUFDO2FBQ0o7UUFDSCxDQUFDO1FBRU8sS0FBSyxDQUFDLGdCQUFnQjtZQUM1QixNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDN0MsS0FBSyxNQUFNLEVBQUUsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDbEQsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDdEM7UUFDSCxDQUFDO1FBRU8sS0FBSyxDQUFDLFlBQVk7WUFDeEIsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzdDLEtBQUssTUFBTSxFQUFFLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUU7Z0JBQ3JELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNmLGtCQUFrQixFQUFFLENBQUMsU0FBUyxPQUFPLEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FDekQsQ0FBQztnQkFDRixNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDcEQsa0RBQWtEO2dCQUNsRCxNQUFNLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7YUFDN0Q7UUFDSCxDQUFDO1FBRU8sS0FBSyxDQUFDLGNBQWM7WUFDMUIsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzdDLE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDbEQsS0FBSyxNQUFNLEVBQUUsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFBRTtnQkFDdkQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO2dCQUM1RCxNQUFNLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFO29CQUNoRCxHQUFHLEVBQUUsQ0FBQyxPQUFPO29CQUNiLHFFQUFxRTtvQkFDckUsT0FBTyxFQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQzt3QkFDOUMsQ0FBQyxDQUFDLFNBQVM7d0JBQ1gsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRO2lCQUNsQixDQUFDLENBQUM7YUFDSjtRQUNILENBQUM7S0FHRjtJQUVELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFwSUQsa0NBb0lDO0FBRUQsU0FBUyxrQkFBa0IsQ0FDekIsRUFBc0I7SUFFdEIsT0FBTyxFQUFFLENBQUMsSUFBSSxLQUFLLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQztBQUNwRCxDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUMsRUFBc0I7SUFDM0MsT0FBTyxFQUFFLENBQUMsSUFBSSxLQUFLLGFBQWEsQ0FBQyxXQUFXLENBQUM7QUFDL0MsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLEVBQXNCO0lBQ3pDLE9BQU8sRUFBRSxDQUFDLElBQUksS0FBSyxhQUFhLENBQUMsU0FBUyxDQUFDO0FBQzdDLENBQUM7QUFFRCxTQUFTLFFBQVEsQ0FBQyxFQUFzQjtJQUN0QyxPQUFPLEVBQUUsQ0FBQyxJQUFJLEtBQUssYUFBYSxDQUFDLE1BQU0sQ0FBQztBQUMxQyxDQUFDIn0=
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL01pZ3JhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWNBLElBQUssYUFLSjtBQUxELFdBQUssYUFBYTtJQUNoQixzREFBcUMsQ0FBQTtJQUNyQyx3Q0FBdUIsQ0FBQTtJQUN2Qiw0Q0FBMkIsQ0FBQTtJQUMzQixrQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBTEksYUFBYSxLQUFiLGFBQWEsUUFLakI7QUFnQ0QsOERBQThEO0FBQzlELFNBQXdCLGVBQWUsQ0FBQyxRQUEwQjtJQUNoRSxNQUFlLFNBQVM7UUFNdEIsWUFBbUIsVUFBOEIsRUFBRSxNQUFjO1lBTHpELGdCQUFXLEdBQXlCLEVBQUUsQ0FBQztZQU03QyxJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDbkQsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDeEIsQ0FBQztRQUVNLGlCQUFpQixDQUFDLGVBQXlCO1lBQ2hELEtBQUssTUFBTSxjQUFjLElBQUksZUFBZSxFQUFFO2dCQUM1QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLENBQUM7YUFDdkM7UUFDSCxDQUFDO1FBRU0sZ0JBQWdCLENBQUMsY0FBc0I7WUFDNUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7Z0JBQ3BCLElBQUksRUFBRSxhQUFhLENBQUMsZ0JBQWdCO2dCQUNwQyxjQUFjO2FBQ2YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVNLFNBQVMsQ0FDZCxjQUFzQixFQUN0QixTQUFpQixFQUNqQixPQUE0QjtZQUU1QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztnQkFDcEIsSUFBSSxFQUFFLGFBQWEsQ0FBQyxTQUFTO2dCQUM3QixjQUFjO2dCQUNkLFNBQVM7Z0JBQ1QsT0FBTzthQUNSLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFTSxX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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zakodium/adonis-mongodb",
3
- "version": "0.14.4",
3
+ "version": "0.15.0",
4
4
  "description": "MongoDB provider for AdonisJs",
5
5
  "main": "./lib/providers/MongodbProvider.js",
6
6
  "types": "./lib/adonis-typings/index.d.ts",
@@ -80,7 +80,7 @@
80
80
  "@poppinss/utils": "^5.0.0",
81
81
  "cli-table3": "^0.6.3",
82
82
  "lodash": "^4.17.21",
83
- "mongodb": "^5.4.0",
83
+ "mongodb": "^5.5.0",
84
84
  "pluralize": "^8.0.0"
85
85
  }
86
86
  }
package/src/Migration.ts CHANGED
@@ -55,17 +55,11 @@ export default function createMigration(Database: DatabaseContract): any {
55
55
  private $operations: MigrationOperation[] = [];
56
56
  private $connection: ConnectionContract;
57
57
  private $logger: Logger;
58
- private $session: ClientSession;
59
58
  private $collectionList: string[];
60
59
 
61
- public constructor(
62
- connection: string | undefined,
63
- logger: Logger,
64
- session: ClientSession,
65
- ) {
60
+ public constructor(connection: string | undefined, logger: Logger) {
66
61
  this.$connection = Database.connection(connection);
67
62
  this.$logger = logger;
68
- this.$session = session;
69
63
  }
70
64
 
71
65
  public createCollections(collectionNames: string[]): void {
@@ -114,12 +108,12 @@ export default function createMigration(Database: DatabaseContract): any {
114
108
  });
115
109
  }
116
110
 
117
- public async execUp(): Promise<void> {
111
+ public async execUp(session: ClientSession): Promise<void> {
118
112
  this.up();
119
- await this._createCollections();
120
- await this._dropIndexes();
121
- await this._createIndexes();
122
- await this._executeDeferred();
113
+ await this._createCollections(session);
114
+ await this._dropIndexes(session);
115
+ await this._createIndexes(session);
116
+ await this._executeDeferred(session);
123
117
  }
124
118
 
125
119
  private async _listCollections() {
@@ -134,24 +128,24 @@ export default function createMigration(Database: DatabaseContract): any {
134
128
  return this.$collectionList;
135
129
  }
136
130
 
137
- private async _createCollections(): Promise<void> {
131
+ private async _createCollections(session: ClientSession): Promise<void> {
138
132
  const db = await this.$connection.database();
139
133
  for (const op of this.$operations.filter(isCreateCollection)) {
140
134
  this.$logger.info(`Creating collection ${op.collectionName}`);
141
135
  await db.createCollection(op.collectionName, {
142
- session: this.$session,
136
+ session,
143
137
  });
144
138
  }
145
139
  }
146
140
 
147
- private async _executeDeferred(): Promise<void> {
141
+ private async _executeDeferred(session: ClientSession): Promise<void> {
148
142
  const db = await this.$connection.database();
149
143
  for (const op of this.$operations.filter(isCustom)) {
150
- await op.callback(db, this.$session);
144
+ await op.callback(db, session);
151
145
  }
152
146
  }
153
147
 
154
- private async _dropIndexes(): Promise<void> {
148
+ private async _dropIndexes(session: ClientSession): Promise<void> {
155
149
  const db = await this.$connection.database();
156
150
  for (const op of this.$operations.filter(isDropIndex)) {
157
151
  this.$logger.info(
@@ -159,11 +153,11 @@ export default function createMigration(Database: DatabaseContract): any {
159
153
  );
160
154
  const collection = db.collection(op.collectionName);
161
155
  // Index deletion cannot be done in a transaction.
162
- await collection.dropIndex(op.indexName, { ...op.options });
156
+ await collection.dropIndex(op.indexName, { ...op.options, session });
163
157
  }
164
158
  }
165
159
 
166
- private async _createIndexes(): Promise<void> {
160
+ private async _createIndexes(session: ClientSession): Promise<void> {
167
161
  const db = await this.$connection.database();
168
162
  const collections = await this._listCollections();
169
163
  for (const op of this.$operations.filter(isCreateIndex)) {
@@ -173,12 +167,13 @@ export default function createMigration(Database: DatabaseContract): any {
173
167
  // Index creation will fail if collection pre-exists the transaction.
174
168
  session: collections.includes(op.collectionName)
175
169
  ? undefined
176
- : this.$session,
170
+ : session,
177
171
  });
178
172
  }
179
173
  }
180
174
 
181
175
  public abstract up(): void;
176
+ public afterUpSuccess?(): void;
182
177
  }
183
178
 
184
179
  return Migration;