Made database migration compatible with plugins
This commit is contained in:
@@ -112,7 +112,7 @@ export interface ODUtilities {
|
||||
*
|
||||
* It shouldn't be used by plugins because this is an internal API feature!
|
||||
*/
|
||||
ODVersionMigration:new (version:api.ODVersion,func:() => void|Promise<void>) => ODVersionMigration
|
||||
ODVersionMigration:new (version:api.ODVersion,func:() => void|Promise<void>,afterInitFunc:() => void|Promise<void>) => ODVersionMigration
|
||||
}
|
||||
|
||||
/**## ODVersionMigration `utility class`
|
||||
@@ -125,10 +125,13 @@ export class ODVersionMigration {
|
||||
version: api.ODVersion
|
||||
/**The migration function */
|
||||
#func: () => void|Promise<void>
|
||||
/**The migration function */
|
||||
#afterInitFunc: () => void|Promise<void>
|
||||
|
||||
constructor(version:api.ODVersion,func:() => void|Promise<void>){
|
||||
constructor(version:api.ODVersion,func:() => void|Promise<void>,afterInitFunc:() => void|Promise<void>){
|
||||
this.version = version
|
||||
this.#func = func
|
||||
this.#afterInitFunc = afterInitFunc
|
||||
}
|
||||
/**Run this version migration as a plugin. Returns `false` when someting goes wrong. */
|
||||
async migrate(): Promise<boolean> {
|
||||
@@ -139,6 +142,15 @@ export class ODVersionMigration {
|
||||
return false
|
||||
}
|
||||
}
|
||||
/**Run this version migration as a plugin. Returns `false` when someting goes wrong. */
|
||||
async migrateAfterInit(): Promise<boolean> {
|
||||
try{
|
||||
await this.#afterInitFunc()
|
||||
return true
|
||||
}catch{
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export const utilities: ODUtilities = {
|
||||
|
||||
Reference in New Issue
Block a user