mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-05-30 12:24:25 +02:00
Merge pull request #18186 from overleaf/em-migration-dependencies
Add a migration helper checking dependent migrations GitOrigin-RevId: 96aa6238b20115206554faaa4c2aefc537bbe7e8
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
// @ts-check
|
||||
|
||||
const {
|
||||
db,
|
||||
getCollectionNames,
|
||||
@@ -42,8 +44,25 @@ async function dropCollection(collectionName) {
|
||||
await collection.drop()
|
||||
}
|
||||
|
||||
/**
|
||||
* Asserts that a dependent migration has run. Throws an error otherwise.
|
||||
*
|
||||
* @param {string} migrationName
|
||||
*/
|
||||
async function assertDependency(migrationName) {
|
||||
await waitForDb()
|
||||
const migrations = await getCollectionInternal('migrations')
|
||||
const migration = await migrations.findOne({ name: migrationName })
|
||||
if (migration == null) {
|
||||
throw new Error(
|
||||
`Bad migration order: ${migrationName} should run before this migration`
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
addIndexesToCollection,
|
||||
dropIndexesFromCollection,
|
||||
dropCollection,
|
||||
assertDependency,
|
||||
}
|
||||
|
||||
@@ -6,6 +6,11 @@ exports.tags = ['server-ce', 'server-pro', 'saas']
|
||||
|
||||
exports.migrate = async client => {
|
||||
const { db } = client
|
||||
// Are there migrations that need to run before this migration?
|
||||
// Use the following helper to enforce the dependency:
|
||||
//
|
||||
// await Helpers.assertDependency('20200101000000_another_migration')
|
||||
|
||||
// await Helpers.addIndexesToCollection(db.wombats, [{ name: 1 }])
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user