@payloadcms/db-mongodb 1.0.0-beta.6 → 1.0.0-beta.8
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 +28 -0
- package/dist/createMigration.d.ts +3 -0
- package/dist/createMigration.d.ts.map +1 -0
- package/dist/createMigration.js +68 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/package.json +4 -3
- package/predefinedMigrations/versions-v1-v2.js +96 -0
- package/src/index.ts +1 -1
package/README.md
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Payload MongoDB Adapter
|
|
2
|
+
|
|
3
|
+
Official MongoDB adapter for [Payload](https://payloadcms.com).
|
|
4
|
+
|
|
5
|
+
- [Main Repository](https://github.com/payloadcms/payload)
|
|
6
|
+
- [Payload Docs](https://payloadcms.com/docs)
|
|
7
|
+
|
|
8
|
+
## Installation
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
npm install @payloadcms/db-mongodb
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Usage
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
import { buildConfig } from 'payload/config'
|
|
18
|
+
import { mongooseAdapter } from '@payloadcms/db-mongodb'
|
|
19
|
+
|
|
20
|
+
export default buildConfig({
|
|
21
|
+
db: mongooseAdapter({}),
|
|
22
|
+
// ...rest of config
|
|
23
|
+
})
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
More detailed usage can be found in the [Payload Docs](https://payloadcms.com/docs/configuration/overview).
|
|
28
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createMigration.d.ts","sourceRoot":"","sources":["../src/createMigration.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAmBvD,eAAO,MAAM,eAAe,EAAE,eA2C7B,CAAA"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/* eslint-disable no-restricted-syntax, no-await-in-loop */ "use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "createMigration", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return createMigration;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
12
|
+
const _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
13
|
+
function _interop_require_default(obj) {
|
|
14
|
+
return obj && obj.__esModule ? obj : {
|
|
15
|
+
default: obj
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
const migrationTemplate = (upSQL, downSQL)=>`import {
|
|
19
|
+
MigrateUpArgs,
|
|
20
|
+
MigrateDownArgs,
|
|
21
|
+
} from "@payloadcms/db-mongodb";
|
|
22
|
+
|
|
23
|
+
export async function up({ payload }: MigrateUpArgs): Promise<void> {
|
|
24
|
+
${upSQL ?? ` // Migration code`}
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export async function down({ payload }: MigrateDownArgs): Promise<void> {
|
|
28
|
+
${downSQL ?? ` // Migration code`}
|
|
29
|
+
};
|
|
30
|
+
`;
|
|
31
|
+
const createMigration = async function createMigration({ file, migrationName, payload }) {
|
|
32
|
+
const dir = payload.db.migrationDir;
|
|
33
|
+
if (!_fs.default.existsSync(dir)) {
|
|
34
|
+
_fs.default.mkdirSync(dir);
|
|
35
|
+
}
|
|
36
|
+
let migrationFileContent;
|
|
37
|
+
// Check for predefined migration
|
|
38
|
+
if (file) {
|
|
39
|
+
const predefinedMigrationName = file.replace('@payloadcms/db-mongodb/', '');
|
|
40
|
+
migrationName = predefinedMigrationName;
|
|
41
|
+
const cleanPath = _path.default.join(__dirname, `../predefinedMigrations/${predefinedMigrationName}.js`);
|
|
42
|
+
// Check if predefined migration exists
|
|
43
|
+
if (_fs.default.existsSync(cleanPath)) {
|
|
44
|
+
const { down, up } = require(cleanPath);
|
|
45
|
+
migrationFileContent = migrationTemplate(up, down);
|
|
46
|
+
} else {
|
|
47
|
+
payload.logger.error({
|
|
48
|
+
msg: `Canned migration ${predefinedMigrationName} not found.`
|
|
49
|
+
});
|
|
50
|
+
process.exit(1);
|
|
51
|
+
}
|
|
52
|
+
} else {
|
|
53
|
+
migrationFileContent = migrationTemplate();
|
|
54
|
+
}
|
|
55
|
+
const [yyymmdd, hhmmss] = new Date().toISOString().split('T');
|
|
56
|
+
const formattedDate = yyymmdd.replace(/\D/g, '');
|
|
57
|
+
const formattedTime = hhmmss.split('.')[0].replace(/\D/g, '');
|
|
58
|
+
const timestamp = `${formattedDate}_${formattedTime}`;
|
|
59
|
+
const formattedName = migrationName.replace(/\W/g, '_');
|
|
60
|
+
const fileName = `${timestamp}_${formattedName}.ts`;
|
|
61
|
+
const filePath = `${dir}/${fileName}`;
|
|
62
|
+
_fs.default.writeFileSync(filePath, migrationFileContent);
|
|
63
|
+
payload.logger.info({
|
|
64
|
+
msg: `Migration created at ${filePath}`
|
|
65
|
+
});
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jcmVhdGVNaWdyYXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcmVzdHJpY3RlZC1zeW50YXgsIG5vLWF3YWl0LWluLWxvb3AgKi9cbmltcG9ydCB0eXBlIHsgQ3JlYXRlTWlncmF0aW9uIH0gZnJvbSAncGF5bG9hZC9kYXRhYmFzZSdcblxuaW1wb3J0IGZzIGZyb20gJ2ZzJ1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcblxuY29uc3QgbWlncmF0aW9uVGVtcGxhdGUgPSAodXBTUUw/OiBzdHJpbmcsIGRvd25TUUw/OiBzdHJpbmcpID0+IGBpbXBvcnQge1xuICBNaWdyYXRlVXBBcmdzLFxuICBNaWdyYXRlRG93bkFyZ3MsXG59IGZyb20gXCJAcGF5bG9hZGNtcy9kYi1tb25nb2RiXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB1cCh7IHBheWxvYWQgfTogTWlncmF0ZVVwQXJncyk6IFByb21pc2U8dm9pZD4ge1xuJHt1cFNRTCA/PyBgICAvLyBNaWdyYXRpb24gY29kZWB9XG59O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZG93bih7IHBheWxvYWQgfTogTWlncmF0ZURvd25BcmdzKTogUHJvbWlzZTx2b2lkPiB7XG4ke2Rvd25TUUwgPz8gYCAgLy8gTWlncmF0aW9uIGNvZGVgfVxufTtcbmBcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZU1pZ3JhdGlvbjogQ3JlYXRlTWlncmF0aW9uID0gYXN5bmMgZnVuY3Rpb24gY3JlYXRlTWlncmF0aW9uKHtcbiAgZmlsZSxcbiAgbWlncmF0aW9uTmFtZSxcbiAgcGF5bG9hZCxcbn0pIHtcbiAgY29uc3QgZGlyID0gcGF5bG9hZC5kYi5taWdyYXRpb25EaXJcbiAgaWYgKCFmcy5leGlzdHNTeW5jKGRpcikpIHtcbiAgICBmcy5ta2RpclN5bmMoZGlyKVxuICB9XG5cbiAgbGV0IG1pZ3JhdGlvbkZpbGVDb250ZW50OiBzdHJpbmcgfCB1bmRlZmluZWRcblxuICAvLyBDaGVjayBmb3IgcHJlZGVmaW5lZCBtaWdyYXRpb25cbiAgaWYgKGZpbGUpIHtcbiAgICBjb25zdCBwcmVkZWZpbmVkTWlncmF0aW9uTmFtZSA9IGZpbGUucmVwbGFjZSgnQHBheWxvYWRjbXMvZGItbW9uZ29kYi8nLCAnJylcbiAgICBtaWdyYXRpb25OYW1lID0gcHJlZGVmaW5lZE1pZ3JhdGlvbk5hbWVcbiAgICBjb25zdCBjbGVhblBhdGggPSBwYXRoLmpvaW4oX19kaXJuYW1lLCBgLi4vcHJlZGVmaW5lZE1pZ3JhdGlvbnMvJHtwcmVkZWZpbmVkTWlncmF0aW9uTmFtZX0uanNgKVxuXG4gICAgLy8gQ2hlY2sgaWYgcHJlZGVmaW5lZCBtaWdyYXRpb24gZXhpc3RzXG4gICAgaWYgKGZzLmV4aXN0c1N5bmMoY2xlYW5QYXRoKSkge1xuICAgICAgY29uc3QgeyBkb3duLCB1cCB9ID0gcmVxdWlyZShjbGVhblBhdGgpXG4gICAgICBtaWdyYXRpb25GaWxlQ29udGVudCA9IG1pZ3JhdGlvblRlbXBsYXRlKHVwLCBkb3duKVxuICAgIH0gZWxzZSB7XG4gICAgICBwYXlsb2FkLmxvZ2dlci5lcnJvcih7XG4gICAgICAgIG1zZzogYENhbm5lZCBtaWdyYXRpb24gJHtwcmVkZWZpbmVkTWlncmF0aW9uTmFtZX0gbm90IGZvdW5kLmAsXG4gICAgICB9KVxuICAgICAgcHJvY2Vzcy5leGl0KDEpXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG1pZ3JhdGlvbkZpbGVDb250ZW50ID0gbWlncmF0aW9uVGVtcGxhdGUoKVxuICB9XG5cbiAgY29uc3QgW3l5eW1tZGQsIGhobW1zc10gPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVxuICBjb25zdCBmb3JtYXR0ZWREYXRlID0geXl5bW1kZC5yZXBsYWNlKC9cXEQvZywgJycpXG4gIGNvbnN0IGZvcm1hdHRlZFRpbWUgPSBoaG1tc3Muc3BsaXQoJy4nKVswXS5yZXBsYWNlKC9cXEQvZywgJycpXG5cbiAgY29uc3QgdGltZXN0YW1wID0gYCR7Zm9ybWF0dGVkRGF0ZX1fJHtmb3JtYXR0ZWRUaW1lfWBcblxuICBjb25zdCBmb3JtYXR0ZWROYW1lID0gbWlncmF0aW9uTmFtZS5yZXBsYWNlKC9cXFcvZywgJ18nKVxuICBjb25zdCBmaWxlTmFtZSA9IGAke3RpbWVzdGFtcH1fJHtmb3JtYXR0ZWROYW1lfS50c2BcbiAgY29uc3QgZmlsZVBhdGggPSBgJHtkaXJ9LyR7ZmlsZU5hbWV9YFxuICBmcy53cml0ZUZpbGVTeW5jKGZpbGVQYXRoLCBtaWdyYXRpb25GaWxlQ29udGVudClcbiAgcGF5bG9hZC5sb2dnZXIuaW5mbyh7IG1zZzogYE1pZ3JhdGlvbiBjcmVhdGVkIGF0ICR7ZmlsZVBhdGh9YCB9KVxufVxuIl0sIm5hbWVzIjpbImNyZWF0ZU1pZ3JhdGlvbiIsIm1pZ3JhdGlvblRlbXBsYXRlIiwidXBTUUwiLCJkb3duU1FMIiwiZmlsZSIsIm1pZ3JhdGlvbk5hbWUiLCJwYXlsb2FkIiwiZGlyIiwiZGIiLCJtaWdyYXRpb25EaXIiLCJmcyIsImV4aXN0c1N5bmMiLCJta2RpclN5bmMiLCJtaWdyYXRpb25GaWxlQ29udGVudCIsInByZWRlZmluZWRNaWdyYXRpb25OYW1lIiwicmVwbGFjZSIsImNsZWFuUGF0aCIsInBhdGgiLCJqb2luIiwiX19kaXJuYW1lIiwiZG93biIsInVwIiwicmVxdWlyZSIsImxvZ2dlciIsImVycm9yIiwibXNnIiwicHJvY2VzcyIsImV4aXQiLCJ5eXltbWRkIiwiaGhtbXNzIiwiRGF0ZSIsInRvSVNPU3RyaW5nIiwic3BsaXQiLCJmb3JtYXR0ZWREYXRlIiwiZm9ybWF0dGVkVGltZSIsInRpbWVzdGFtcCIsImZvcm1hdHRlZE5hbWUiLCJmaWxlTmFtZSIsImZpbGVQYXRoIiwid3JpdGVGaWxlU3luYyIsImluZm8iXSwibWFwcGluZ3MiOiJBQUFBLHlEQUF5RDs7OzsrQkFvQjVDQTs7O2VBQUFBOzs7MkRBakJFOzZEQUNFOzs7Ozs7QUFFakIsTUFBTUMsb0JBQW9CLENBQUNDLE9BQWdCQyxVQUFxQixDQUFDOzs7Ozs7QUFNakUsRUFBRUQsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUM7Ozs7QUFJakMsRUFBRUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLENBQUM7O0FBRW5DLENBQUM7QUFFTSxNQUFNSCxrQkFBbUMsZUFBZUEsZ0JBQWdCLEVBQzdFSSxJQUFJLEVBQ0pDLGFBQWEsRUFDYkMsT0FBTyxFQUNSO0lBQ0MsTUFBTUMsTUFBTUQsUUFBUUUsRUFBRSxDQUFDQyxZQUFZO0lBQ25DLElBQUksQ0FBQ0MsV0FBRSxDQUFDQyxVQUFVLENBQUNKLE1BQU07UUFDdkJHLFdBQUUsQ0FBQ0UsU0FBUyxDQUFDTDtJQUNmO0lBRUEsSUFBSU07SUFFSixpQ0FBaUM7SUFDakMsSUFBSVQsTUFBTTtRQUNSLE1BQU1VLDBCQUEwQlYsS0FBS1csT0FBTyxDQUFDLDJCQUEyQjtRQUN4RVYsZ0JBQWdCUztRQUNoQixNQUFNRSxZQUFZQyxhQUFJLENBQUNDLElBQUksQ0FBQ0MsV0FBVyxDQUFDLHdCQUF3QixFQUFFTCx3QkFBd0IsR0FBRyxDQUFDO1FBRTlGLHVDQUF1QztRQUN2QyxJQUFJSixXQUFFLENBQUNDLFVBQVUsQ0FBQ0ssWUFBWTtZQUM1QixNQUFNLEVBQUVJLElBQUksRUFBRUMsRUFBRSxFQUFFLEdBQUdDLFFBQVFOO1lBQzdCSCx1QkFBdUJaLGtCQUFrQm9CLElBQUlEO1FBQy9DLE9BQU87WUFDTGQsUUFBUWlCLE1BQU0sQ0FBQ0MsS0FBSyxDQUFDO2dCQUNuQkMsS0FBSyxDQUFDLGlCQUFpQixFQUFFWCx3QkFBd0IsV0FBVyxDQUFDO1lBQy9EO1lBQ0FZLFFBQVFDLElBQUksQ0FBQztRQUNmO0lBQ0YsT0FBTztRQUNMZCx1QkFBdUJaO0lBQ3pCO0lBRUEsTUFBTSxDQUFDMkIsU0FBU0MsT0FBTyxHQUFHLElBQUlDLE9BQU9DLFdBQVcsR0FBR0MsS0FBSyxDQUFDO0lBQ3pELE1BQU1DLGdCQUFnQkwsUUFBUWIsT0FBTyxDQUFDLE9BQU87SUFDN0MsTUFBTW1CLGdCQUFnQkwsT0FBT0csS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUNqQixPQUFPLENBQUMsT0FBTztJQUUxRCxNQUFNb0IsWUFBWSxDQUFDLEVBQUVGLGNBQWMsQ0FBQyxFQUFFQyxjQUFjLENBQUM7SUFFckQsTUFBTUUsZ0JBQWdCL0IsY0FBY1UsT0FBTyxDQUFDLE9BQU87SUFDbkQsTUFBTXNCLFdBQVcsQ0FBQyxFQUFFRixVQUFVLENBQUMsRUFBRUMsY0FBYyxHQUFHLENBQUM7SUFDbkQsTUFBTUUsV0FBVyxDQUFDLEVBQUUvQixJQUFJLENBQUMsRUFBRThCLFNBQVMsQ0FBQztJQUNyQzNCLFdBQUUsQ0FBQzZCLGFBQWEsQ0FBQ0QsVUFBVXpCO0lBQzNCUCxRQUFRaUIsTUFBTSxDQUFDaUIsSUFBSSxDQUFDO1FBQUVmLEtBQUssQ0FBQyxxQkFBcUIsRUFBRWEsU0FBUyxDQUFDO0lBQUM7QUFDaEUifQ==
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAM3D,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE7D,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AA8B3D,MAAM,WAAW,IAAI;IACnB,uFAAuF;IACvF,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,kCAAkC;IAClC,cAAc,CAAC,EAAE,cAAc,GAAG;QAChC,4FAA4F;QAC5F,QAAQ,CAAC,EAAE,OAAO,CAAA;KACnB,CAAA;IACD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,qFAAqF;IACrF,GAAG,EAAE,KAAK,GAAG,MAAM,CAAA;CACpB;AAED,MAAM,MAAM,eAAe,GAAG,mBAAmB,GAC/C,IAAI,GAAG;IACL,WAAW,EAAE;QACX,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAA;KAChC,CAAA;IACD,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,WAAW,CAAA;IACpB,iBAAiB,EAAE,GAAG,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,aAAa,CAAC,CAAA;IAChD,QAAQ,EAAE;QACR,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAA;KAChC,CAAA;CACF,CAAA;AAEH,KAAK,qBAAqB,GAAG,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,KAAK,eAAe,CAAA;AAE5E,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAiB,eAAgB,SAAQ,IAAI;QAC3C,WAAW,EAAE;YACX,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAA;SAChC,CAAA;QACD,UAAU,EAAE,UAAU,CAAA;QACtB,OAAO,EAAE,WAAW,CAAA;QACpB,iBAAiB,EAAE,GAAG,CAAA;QACtB,QAAQ,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,aAAa,CAAC,CAAA;QAChD,QAAQ,EAAE;YACR,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAA;SAChC,CAAA;KACF;CACF;AAED,wBAAgB,eAAe,CAAC,EAC9B,iBAAwB,EACxB,cAAc,EACd,YAAY,EAAE,eAAe,EAC7B,GAAG,GACJ,EAAE,IAAI,GAAG,qBAAqB,CAuD9B"}
|
package/dist/index.js
CHANGED
|
@@ -15,6 +15,7 @@ const _connect = require("./connect");
|
|
|
15
15
|
const _create = require("./create");
|
|
16
16
|
const _createGlobal = require("./createGlobal");
|
|
17
17
|
const _createGlobalVersion = require("./createGlobalVersion");
|
|
18
|
+
const _createMigration = require("./createMigration");
|
|
18
19
|
const _createVersion = require("./createVersion");
|
|
19
20
|
const _deleteMany = require("./deleteMany");
|
|
20
21
|
const _deleteOne = require("./deleteOne");
|
|
@@ -67,7 +68,7 @@ function mongooseAdapter({ autoPluralization = true, connectOptions, migrationDi
|
|
|
67
68
|
create: _create.create,
|
|
68
69
|
createGlobal: _createGlobal.createGlobal,
|
|
69
70
|
createGlobalVersion: _createGlobalVersion.createGlobalVersion,
|
|
70
|
-
createMigration:
|
|
71
|
+
createMigration: _createMigration.createMigration,
|
|
71
72
|
createVersion: _createVersion.createVersion,
|
|
72
73
|
defaultIDType: 'text',
|
|
73
74
|
deleteMany: _deleteMany.deleteMany,
|
|
@@ -94,4 +95,4 @@ function mongooseAdapter({ autoPluralization = true, connectOptions, migrationDi
|
|
|
94
95
|
return adapter;
|
|
95
96
|
}
|
|
96
97
|
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENsaWVudFNlc3Npb24sIENvbm5lY3RPcHRpb25zLCBDb25uZWN0aW9uIH0gZnJvbSAnbW9uZ29vc2UnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWQgfSBmcm9tICdwYXlsb2FkJ1xuaW1wb3J0IHR5cGUgeyBCYXNlRGF0YWJhc2VBZGFwdGVyIH0gZnJvbSAncGF5bG9hZC9kYXRhYmFzZSdcblxuaW1wb3J0IG1vbmdvb3NlIGZyb20gJ21vbmdvb3NlJ1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCB7IGNyZWF0ZURhdGFiYXNlQWRhcHRlciB9IGZyb20gJ3BheWxvYWQvZGF0YWJhc2UnXG5cbmV4cG9ydCB0eXBlIHsgTWlncmF0ZURvd25BcmdzLCBNaWdyYXRlVXBBcmdzIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uTW9kZWwsIEdsb2JhbE1vZGVsIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgY29ubmVjdCB9IGZyb20gJy4vY29ubmVjdCdcbmltcG9ydCB7IGNyZWF0ZSB9IGZyb20gJy4vY3JlYXRlJ1xuaW1wb3J0IHsgY3JlYXRlR2xvYmFsIH0gZnJvbSAnLi9jcmVhdGVHbG9iYWwnXG5pbXBvcnQgeyBjcmVhdGVHbG9iYWxWZXJzaW9uIH0gZnJvbSAnLi9jcmVhdGVHbG9iYWxWZXJzaW9uJ1xuaW1wb3J0IHsgY3JlYXRlTWlncmF0aW9uIH0gZnJvbSAnLi9jcmVhdGVNaWdyYXRpb24nXG5pbXBvcnQgeyBjcmVhdGVWZXJzaW9uIH0gZnJvbSAnLi9jcmVhdGVWZXJzaW9uJ1xuaW1wb3J0IHsgZGVsZXRlTWFueSB9IGZyb20gJy4vZGVsZXRlTWFueSdcbmltcG9ydCB7IGRlbGV0ZU9uZSB9IGZyb20gJy4vZGVsZXRlT25lJ1xuaW1wb3J0IHsgZGVsZXRlVmVyc2lvbnMgfSBmcm9tICcuL2RlbGV0ZVZlcnNpb25zJ1xuaW1wb3J0IHsgZGVzdHJveSB9IGZyb20gJy4vZGVzdHJveSdcbmltcG9ydCB7IGV4dGVuZFZpdGVDb25maWcgfSBmcm9tICcuL2V4dGVuZFZpdGVDb25maWcnXG5pbXBvcnQgeyBleHRlbmRXZWJwYWNrQ29uZmlnIH0gZnJvbSAnLi9leHRlbmRXZWJwYWNrQ29uZmlnJ1xuaW1wb3J0IHsgZmluZCB9IGZyb20gJy4vZmluZCdcbmltcG9ydCB7IGZpbmRHbG9iYWwgfSBmcm9tICcuL2ZpbmRHbG9iYWwnXG5pbXBvcnQgeyBmaW5kR2xvYmFsVmVyc2lvbnMgfSBmcm9tICcuL2ZpbmRHbG9iYWxWZXJzaW9ucydcbmltcG9ydCB7IGZpbmRPbmUgfSBmcm9tICcuL2ZpbmRPbmUnXG5pbXBvcnQgeyBmaW5kVmVyc2lvbnMgfSBmcm9tICcuL2ZpbmRWZXJzaW9ucydcbmltcG9ydCB7IGluaXQgfSBmcm9tICcuL2luaXQnXG5pbXBvcnQgeyBtaWdyYXRlRnJlc2ggfSBmcm9tICcuL21pZ3JhdGVGcmVzaCdcbmltcG9ydCB7IHF1ZXJ5RHJhZnRzIH0gZnJvbSAnLi9xdWVyeURyYWZ0cydcbmltcG9ydCB7IGJlZ2luVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9ucy9iZWdpblRyYW5zYWN0aW9uJ1xuaW1wb3J0IHsgY29tbWl0VHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9ucy9jb21taXRUcmFuc2FjdGlvbidcbmltcG9ydCB7IHJvbGxiYWNrVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9ucy9yb2xsYmFja1RyYW5zYWN0aW9uJ1xuaW1wb3J0IHsgdXBkYXRlR2xvYmFsIH0gZnJvbSAnLi91cGRhdGVHbG9iYWwnXG5pbXBvcnQgeyB1cGRhdGVHbG9iYWxWZXJzaW9uIH0gZnJvbSAnLi91cGRhdGVHbG9iYWxWZXJzaW9uJ1xuaW1wb3J0IHsgdXBkYXRlT25lIH0gZnJvbSAnLi91cGRhdGVPbmUnXG5pbXBvcnQgeyB1cGRhdGVWZXJzaW9uIH0gZnJvbSAnLi91cGRhdGVWZXJzaW9uJ1xuXG5leHBvcnQgaW50ZXJmYWNlIEFyZ3Mge1xuICAvKiogU2V0IHRvIGZhbHNlIHRvIGRpc2FibGUgYXV0by1wbHVyYWxpemF0aW9uIG9mIGNvbGxlY3Rpb24gbmFtZXMsIERlZmF1bHRzIHRvIHRydWUgKi9cbiAgYXV0b1BsdXJhbGl6YXRpb24/OiBib29sZWFuXG4gIC8qKiBFeHRyYSBjb25maWd1cmF0aW9uIG9wdGlvbnMgKi9cbiAgY29ubmVjdE9wdGlvbnM/OiBDb25uZWN0T3B0aW9ucyAmIHtcbiAgICAvKiogU2V0IGZhbHNlIHRvIGRpc2FibGUgJGZhY2V0IGFnZ3JlZ2F0aW9uIGluIG5vbi1zdXBwb3J0aW5nIGRhdGFiYXNlcywgRGVmYXVsdHMgdG8gdHJ1ZSAqL1xuICAgIHVzZUZhY2V0PzogYm9vbGVhblxuICB9XG4gIG1pZ3JhdGlvbkRpcj86IHN0cmluZ1xuICAvKiogVGhlIFVSTCB0byBjb25uZWN0IHRvIE1vbmdvREIgb3IgZmFsc2UgdG8gc3RhcnQgcGF5bG9hZCBhbmQgcHJldmVudCBjb25uZWN0aW5nICovXG4gIHVybDogZmFsc2UgfCBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgTW9uZ29vc2VBZGFwdGVyID0gQmFzZURhdGFiYXNlQWRhcHRlciAmXG4gIEFyZ3MgJiB7XG4gICAgY29sbGVjdGlvbnM6IHtcbiAgICAgIFtzbHVnOiBzdHJpbmddOiBDb2xsZWN0aW9uTW9kZWxcbiAgICB9XG4gICAgY29ubmVjdGlvbjogQ29ubmVjdGlvblxuICAgIGdsb2JhbHM6IEdsb2JhbE1vZGVsXG4gICAgbW9uZ29NZW1vcnlTZXJ2ZXI6IGFueVxuICAgIHNlc3Npb25zOiBSZWNvcmQ8bnVtYmVyIHwgc3RyaW5nLCBDbGllbnRTZXNzaW9uPlxuICAgIHZlcnNpb25zOiB7XG4gICAgICBbc2x1Zzogc3RyaW5nXTogQ29sbGVjdGlvbk1vZGVsXG4gICAgfVxuICB9XG5cbnR5cGUgTW9uZ29vc2VBZGFwdGVyUmVzdWx0ID0gKGFyZ3M6IHsgcGF5bG9hZDogUGF5bG9hZCB9KSA9PiBNb25nb29zZUFkYXB0ZXJcblxuZGVjbGFyZSBtb2R1bGUgJ3BheWxvYWQnIHtcbiAgZXhwb3J0IGludGVyZmFjZSBEYXRhYmFzZUFkYXB0ZXIgZXh0ZW5kcyBBcmdzIHtcbiAgICBjb2xsZWN0aW9uczoge1xuICAgICAgW3NsdWc6IHN0cmluZ106IENvbGxlY3Rpb25Nb2RlbFxuICAgIH1cbiAgICBjb25uZWN0aW9uOiBDb25uZWN0aW9uXG4gICAgZ2xvYmFsczogR2xvYmFsTW9kZWxcbiAgICBtb25nb01lbW9yeVNlcnZlcjogYW55XG4gICAgc2Vzc2lvbnM6IFJlY29yZDxudW1iZXIgfCBzdHJpbmcsIENsaWVudFNlc3Npb24+XG4gICAgdmVyc2lvbnM6IHtcbiAgICAgIFtzbHVnOiBzdHJpbmddOiBDb2xsZWN0aW9uTW9kZWxcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vbmdvb3NlQWRhcHRlcih7XG4gIGF1dG9QbHVyYWxpemF0aW9uID0gdHJ1ZSxcbiAgY29ubmVjdE9wdGlvbnMsXG4gIG1pZ3JhdGlvbkRpcjogbWlncmF0aW9uRGlyQXJnLFxuICB1cmwsXG59OiBBcmdzKTogTW9uZ29vc2VBZGFwdGVyUmVzdWx0IHtcbiAgZnVuY3Rpb24gYWRhcHRlcih7IHBheWxvYWQgfTogeyBwYXlsb2FkOiBQYXlsb2FkIH0pIHtcbiAgICBjb25zdCBtaWdyYXRpb25EaXIgPSBtaWdyYXRpb25EaXJBcmcgfHwgcGF0aC5yZXNvbHZlKHByb2Nlc3MuY3dkKCksICdzcmMvbWlncmF0aW9ucycpXG4gICAgbW9uZ29vc2Uuc2V0KCdzdHJpY3RRdWVyeScsIGZhbHNlKVxuXG4gICAgZXh0ZW5kV2VicGFja0NvbmZpZyhwYXlsb2FkLmNvbmZpZylcbiAgICBleHRlbmRWaXRlQ29uZmlnKHBheWxvYWQuY29uZmlnKVxuXG4gICAgcmV0dXJuIGNyZWF0ZURhdGFiYXNlQWRhcHRlcjxNb25nb29zZUFkYXB0ZXI+KHtcbiAgICAgIG5hbWU6ICdtb25nb29zZScsXG5cbiAgICAgIC8vIE1vbmdvb3NlLXNwZWNpZmljXG4gICAgICBhdXRvUGx1cmFsaXphdGlvbixcbiAgICAgIGNvbGxlY3Rpb25zOiB7fSxcbiAgICAgIGNvbm5lY3RPcHRpb25zOiBjb25uZWN0T3B0aW9ucyB8fCB7fSxcbiAgICAgIGNvbm5lY3Rpb246IHVuZGVmaW5lZCxcbiAgICAgIGdsb2JhbHM6IHVuZGVmaW5lZCxcbiAgICAgIG1vbmdvTWVtb3J5U2VydmVyOiB1bmRlZmluZWQsXG4gICAgICBzZXNzaW9uczoge30sXG4gICAgICB1cmwsXG4gICAgICB2ZXJzaW9uczoge30sXG5cbiAgICAgIC8vIERhdGFiYXNlQWRhcHRlclxuICAgICAgYmVnaW5UcmFuc2FjdGlvbixcbiAgICAgIGNvbW1pdFRyYW5zYWN0aW9uLFxuICAgICAgY29ubmVjdCxcbiAgICAgIGNyZWF0ZSxcbiAgICAgIGNyZWF0ZUdsb2JhbCxcbiAgICAgIGNyZWF0ZUdsb2JhbFZlcnNpb24sXG4gICAgICBjcmVhdGVNaWdyYXRpb24sXG4gICAgICBjcmVhdGVWZXJzaW9uLFxuICAgICAgZGVmYXVsdElEVHlwZTogJ3RleHQnLFxuICAgICAgZGVsZXRlTWFueSxcbiAgICAgIGRlbGV0ZU9uZSxcbiAgICAgIGRlbGV0ZVZlcnNpb25zLFxuICAgICAgZGVzdHJveSxcbiAgICAgIGZpbmQsXG4gICAgICBmaW5kR2xvYmFsLFxuICAgICAgZmluZEdsb2JhbFZlcnNpb25zLFxuICAgICAgZmluZE9uZSxcbiAgICAgIGZpbmRWZXJzaW9ucyxcbiAgICAgIGluaXQsXG4gICAgICBtaWdyYXRlRnJlc2gsXG4gICAgICBtaWdyYXRpb25EaXIsXG4gICAgICBwYXlsb2FkLFxuICAgICAgcXVlcnlEcmFmdHMsXG4gICAgICByb2xsYmFja1RyYW5zYWN0aW9uLFxuICAgICAgdXBkYXRlR2xvYmFsLFxuICAgICAgdXBkYXRlR2xvYmFsVmVyc2lvbixcbiAgICAgIHVwZGF0ZU9uZSxcbiAgICAgIHVwZGF0ZVZlcnNpb24sXG4gICAgfSlcbiAgfVxuXG4gIHJldHVybiBhZGFwdGVyXG59XG4iXSwibmFtZXMiOlsibW9uZ29vc2VBZGFwdGVyIiwiYXV0b1BsdXJhbGl6YXRpb24iLCJjb25uZWN0T3B0aW9ucyIsIm1pZ3JhdGlvbkRpciIsIm1pZ3JhdGlvbkRpckFyZyIsInVybCIsImFkYXB0ZXIiLCJwYXlsb2FkIiwicGF0aCIsInJlc29sdmUiLCJwcm9jZXNzIiwiY3dkIiwibW9uZ29vc2UiLCJzZXQiLCJleHRlbmRXZWJwYWNrQ29uZmlnIiwiY29uZmlnIiwiZXh0ZW5kVml0ZUNvbmZpZyIsImNyZWF0ZURhdGFiYXNlQWRhcHRlciIsIm5hbWUiLCJjb2xsZWN0aW9ucyIsImNvbm5lY3Rpb24iLCJ1bmRlZmluZWQiLCJnbG9iYWxzIiwibW9uZ29NZW1vcnlTZXJ2ZXIiLCJzZXNzaW9ucyIsInZlcnNpb25zIiwiYmVnaW5UcmFuc2FjdGlvbiIsImNvbW1pdFRyYW5zYWN0aW9uIiwiY29ubmVjdCIsImNyZWF0ZSIsImNyZWF0ZUdsb2JhbCIsImNyZWF0ZUdsb2JhbFZlcnNpb24iLCJjcmVhdGVNaWdyYXRpb24iLCJjcmVhdGVWZXJzaW9uIiwiZGVmYXVsdElEVHlwZSIsImRlbGV0ZU1hbnkiLCJkZWxldGVPbmUiLCJkZWxldGVWZXJzaW9ucyIsImRlc3Ryb3kiLCJmaW5kIiwiZmluZEdsb2JhbCIsImZpbmRHbG9iYWxWZXJzaW9ucyIsImZpbmRPbmUiLCJmaW5kVmVyc2lvbnMiLCJpbml0IiwibWlncmF0ZUZyZXNoIiwicXVlcnlEcmFmdHMiLCJyb2xsYmFja1RyYW5zYWN0aW9uIiwidXBkYXRlR2xvYmFsIiwidXBkYXRlR2xvYmFsVmVyc2lvbiIsInVwZGF0ZU9uZSIsInVwZGF0ZVZlcnNpb24iXSwibWFwcGluZ3MiOiI7Ozs7K0JBb0ZnQkE7OztlQUFBQTs7O2lFQWhGSzs2REFDSjswQkFDcUI7eUJBTWQ7d0JBQ0Q7OEJBQ007cUNBQ087aUNBQ0o7K0JBQ0Y7NEJBQ0g7MkJBQ0Q7Z0NBQ0s7eUJBQ1A7a0NBQ1M7cUNBQ0c7c0JBQ2Y7NEJBQ007b0NBQ1E7eUJBQ1g7OEJBQ0s7c0JBQ1I7OEJBQ1E7NkJBQ0Q7a0NBQ0s7bUNBQ0M7cUNBQ0U7OEJBQ1A7cUNBQ087MkJBQ1Y7K0JBQ0k7Ozs7OztBQThDdkIsU0FBU0EsZ0JBQWdCLEVBQzlCQyxvQkFBb0IsSUFBSSxFQUN4QkMsY0FBYyxFQUNkQyxjQUFjQyxlQUFlLEVBQzdCQyxHQUFHLEVBQ0U7SUFDTCxTQUFTQyxRQUFRLEVBQUVDLE9BQU8sRUFBd0I7UUFDaEQsTUFBTUosZUFBZUMsbUJBQW1CSSxhQUFJLENBQUNDLE9BQU8sQ0FBQ0MsUUFBUUMsR0FBRyxJQUFJO1FBQ3BFQyxpQkFBUSxDQUFDQyxHQUFHLENBQUMsZUFBZTtRQUU1QkMsSUFBQUEsd0NBQW1CLEVBQUNQLFFBQVFRLE1BQU07UUFDbENDLElBQUFBLGtDQUFnQixFQUFDVCxRQUFRUSxNQUFNO1FBRS9CLE9BQU9FLElBQUFBLCtCQUFxQixFQUFrQjtZQUM1Q0MsTUFBTTtZQUVOLG9CQUFvQjtZQUNwQmpCO1lBQ0FrQixhQUFhLENBQUM7WUFDZGpCLGdCQUFnQkEsa0JBQWtCLENBQUM7WUFDbkNrQixZQUFZQztZQUNaQyxTQUFTRDtZQUNURSxtQkFBbUJGO1lBQ25CRyxVQUFVLENBQUM7WUFDWG5CO1lBQ0FvQixVQUFVLENBQUM7WUFFWCxrQkFBa0I7WUFDbEJDLGtCQUFBQSxrQ0FBZ0I7WUFDaEJDLG1CQUFBQSxvQ0FBaUI7WUFDakJDLFNBQUFBLGdCQUFPO1lBQ1BDLFFBQUFBLGNBQU07WUFDTkMsY0FBQUEsMEJBQVk7WUFDWkMscUJBQUFBLHdDQUFtQjtZQUNuQkMsaUJBQUFBLGdDQUFlO1lBQ2ZDLGVBQUFBLDRCQUFhO1lBQ2JDLGVBQWU7WUFDZkMsWUFBQUEsc0JBQVU7WUFDVkMsV0FBQUEsb0JBQVM7WUFDVEMsZ0JBQUFBLDhCQUFjO1lBQ2RDLFNBQUFBLGdCQUFPO1lBQ1BDLE1BQUFBLFVBQUk7WUFDSkMsWUFBQUEsc0JBQVU7WUFDVkMsb0JBQUFBLHNDQUFrQjtZQUNsQkMsU0FBQUEsZ0JBQU87WUFDUEMsY0FBQUEsMEJBQVk7WUFDWkMsTUFBQUEsVUFBSTtZQUNKQyxjQUFBQSwwQkFBWTtZQUNaMUM7WUFDQUk7WUFDQXVDLGFBQUFBLHdCQUFXO1lBQ1hDLHFCQUFBQSx3Q0FBbUI7WUFDbkJDLGNBQUFBLDBCQUFZO1lBQ1pDLHFCQUFBQSx3Q0FBbUI7WUFDbkJDLFdBQUFBLG9CQUFTO1lBQ1RDLGVBQUFBLDRCQUFhO1FBQ2Y7SUFDRjtJQUVBLE9BQU83QztBQUNUIn0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/db-mongodb",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.8",
|
|
4
4
|
"description": "The officially supported MongoDB database adapter for Payload",
|
|
5
5
|
"repository": "https://github.com/payloadcms/payload",
|
|
6
6
|
"license": "MIT",
|
|
@@ -26,14 +26,15 @@
|
|
|
26
26
|
"@types/mongoose-aggregate-paginate-v2": "1.0.9",
|
|
27
27
|
"mongodb-memory-server": "8.13.0",
|
|
28
28
|
"@payloadcms/eslint-config": "0.0.1",
|
|
29
|
-
"payload": "2.0.0-beta.
|
|
29
|
+
"payload": "2.0.0-beta.30"
|
|
30
30
|
},
|
|
31
31
|
"publishConfig": {
|
|
32
32
|
"registry": "https://registry.npmjs.org/"
|
|
33
33
|
},
|
|
34
34
|
"files": [
|
|
35
35
|
"dist",
|
|
36
|
-
"mock.js"
|
|
36
|
+
"mock.js",
|
|
37
|
+
"predefinedMigrations"
|
|
37
38
|
],
|
|
38
39
|
"scripts": {
|
|
39
40
|
"build": "pnpm build:swc && pnpm build:types",
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
module.exports.up = ` async function migrateCollectionDocs(slug: string, docsAtATime = 100) {
|
|
2
|
+
const VersionsModel = payload.db.versions[slug]
|
|
3
|
+
const remainingDocs = await VersionsModel.aggregate(
|
|
4
|
+
[
|
|
5
|
+
// Sort so that newest are first
|
|
6
|
+
{
|
|
7
|
+
$sort: {
|
|
8
|
+
updatedAt: -1,
|
|
9
|
+
},
|
|
10
|
+
},
|
|
11
|
+
// Group by parent ID
|
|
12
|
+
// take the $first of each
|
|
13
|
+
{
|
|
14
|
+
$group: {
|
|
15
|
+
_id: '$parent',
|
|
16
|
+
_versionID: { $first: '$_id' },
|
|
17
|
+
createdAt: { $first: '$createdAt' },
|
|
18
|
+
latest: { $first: '$latest' },
|
|
19
|
+
updatedAt: { $first: '$updatedAt' },
|
|
20
|
+
version: { $first: '$version' },
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
$match: {
|
|
25
|
+
latest: { $eq: null },
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
$limit: docsAtATime,
|
|
30
|
+
},
|
|
31
|
+
],
|
|
32
|
+
{
|
|
33
|
+
allowDiskUse: true,
|
|
34
|
+
},
|
|
35
|
+
).exec()
|
|
36
|
+
|
|
37
|
+
if (!remainingDocs || remainingDocs.length === 0) {
|
|
38
|
+
const newVersions = await VersionsModel.find({
|
|
39
|
+
latest: {
|
|
40
|
+
$eq: true,
|
|
41
|
+
},
|
|
42
|
+
})
|
|
43
|
+
|
|
44
|
+
if (newVersions?.length) {
|
|
45
|
+
payload.logger.info(
|
|
46
|
+
\`Migrated \${newVersions.length} documents in the "\${slug}" versions collection.\`,
|
|
47
|
+
)
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const remainingDocIds = remainingDocs.map((doc) => doc._versionID)
|
|
54
|
+
|
|
55
|
+
await VersionsModel.updateMany(
|
|
56
|
+
{
|
|
57
|
+
_id: {
|
|
58
|
+
$in: remainingDocIds,
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
latest: true,
|
|
63
|
+
},
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
await migrateCollectionDocs(slug)
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// For each collection
|
|
70
|
+
await Promise.all(
|
|
71
|
+
payload.config.collections.map(async ({ slug, versions }) => {
|
|
72
|
+
if (versions?.drafts) {
|
|
73
|
+
return migrateCollectionDocs(slug)
|
|
74
|
+
}
|
|
75
|
+
}),
|
|
76
|
+
)
|
|
77
|
+
|
|
78
|
+
// For each global
|
|
79
|
+
await Promise.all(
|
|
80
|
+
payload.config.globals.map(async ({ slug, versions }) => {
|
|
81
|
+
if (versions) {
|
|
82
|
+
const VersionsModel = payload.db.versions[slug]
|
|
83
|
+
|
|
84
|
+
await VersionsModel.findOneAndUpdate(
|
|
85
|
+
{},
|
|
86
|
+
{ latest: true },
|
|
87
|
+
{
|
|
88
|
+
sort: { updatedAt: -1 },
|
|
89
|
+
},
|
|
90
|
+
).exec()
|
|
91
|
+
|
|
92
|
+
payload.logger.info(\`Migrated the "\${slug}" global.\`)
|
|
93
|
+
}
|
|
94
|
+
}),
|
|
95
|
+
)
|
|
96
|
+
`
|
package/src/index.ts
CHANGED
|
@@ -5,7 +5,6 @@ import type { BaseDatabaseAdapter } from 'payload/database'
|
|
|
5
5
|
import mongoose from 'mongoose'
|
|
6
6
|
import path from 'path'
|
|
7
7
|
import { createDatabaseAdapter } from 'payload/database'
|
|
8
|
-
import { createMigration } from 'payload/database'
|
|
9
8
|
|
|
10
9
|
export type { MigrateDownArgs, MigrateUpArgs } from './types'
|
|
11
10
|
|
|
@@ -15,6 +14,7 @@ import { connect } from './connect'
|
|
|
15
14
|
import { create } from './create'
|
|
16
15
|
import { createGlobal } from './createGlobal'
|
|
17
16
|
import { createGlobalVersion } from './createGlobalVersion'
|
|
17
|
+
import { createMigration } from './createMigration'
|
|
18
18
|
import { createVersion } from './createVersion'
|
|
19
19
|
import { deleteMany } from './deleteMany'
|
|
20
20
|
import { deleteOne } from './deleteOne'
|