Add plugin table migration table
This commit is contained in:
parent
6691c52280
commit
587568e1cc
|
@ -14,7 +14,7 @@ import { CONFIG, registerConfigChangedHandler } from './config'
|
|||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
const LAST_MIGRATION_VERSION = 400
|
||||
const LAST_MIGRATION_VERSION = 405
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
import * as Sequelize from 'sequelize'
|
||||
|
||||
async function up (utils: {
|
||||
transaction: Sequelize.Transaction,
|
||||
queryInterface: Sequelize.QueryInterface,
|
||||
sequelize: Sequelize.Sequelize,
|
||||
db: any
|
||||
}): Promise<void> {
|
||||
{
|
||||
const query = `
|
||||
CREATE TABLE IF NOT EXISTS "plugin"
|
||||
(
|
||||
"id" SERIAL,
|
||||
"name" VARCHAR(255) NOT NULL,
|
||||
"type" INTEGER NOT NULL,
|
||||
"version" VARCHAR(255) NOT NULL,
|
||||
"latestVersion" VARCHAR(255),
|
||||
"enabled" BOOLEAN NOT NULL,
|
||||
"uninstalled" BOOLEAN NOT NULL,
|
||||
"peertubeEngine" VARCHAR(255) NOT NULL,
|
||||
"description" VARCHAR(255),
|
||||
"homepage" VARCHAR(255) NOT NULL,
|
||||
"settings" JSONB,
|
||||
"storage" JSONB,
|
||||
"createdAt" TIMESTAMP WITH TIME ZONE NOT NULL,
|
||||
"updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL,
|
||||
PRIMARY KEY ("id")
|
||||
);`
|
||||
await utils.sequelize.query(query)
|
||||
}
|
||||
}
|
||||
|
||||
function down (options) {
|
||||
throw new Error('Not implemented.')
|
||||
}
|
||||
|
||||
export {
|
||||
up,
|
||||
down
|
||||
}
|
|
@ -9,7 +9,7 @@ type RawFunction <U, T> = (params: U) => T
|
|||
// Helpers to run hooks
|
||||
const Hooks = {
|
||||
wrapObject: <T, U extends ServerFilterHookName>(result: T, hookName: U) => {
|
||||
return PluginManager.Instance.runHook(hookName, result) as Promise<T>
|
||||
return PluginManager.Instance.runHook(hookName, result)
|
||||
},
|
||||
|
||||
wrapPromiseFun: async <U, T, V extends ServerFilterHookName>(fun: PromiseFunction<U, T>, params: U, hookName: V) => {
|
||||
|
|
|
@ -125,6 +125,13 @@ export class PluginManager implements ServerHook {
|
|||
try {
|
||||
await this.registerPluginOrTheme(plugin)
|
||||
} catch (err) {
|
||||
// Try to unregister the plugin
|
||||
try {
|
||||
await this.unregister(PluginModel.buildNpmName(plugin.name, plugin.type))
|
||||
} catch {
|
||||
// we don't care if we cannot unregister it
|
||||
}
|
||||
|
||||
logger.error('Cannot register plugin %s, skipping.', plugin.name, { err })
|
||||
}
|
||||
}
|
||||
|
|
|
@ -43,7 +43,7 @@ describe('Test plugin action hooks', function () {
|
|||
path: getPluginTestPath()
|
||||
})
|
||||
|
||||
await killallServers([ servers[0] ])
|
||||
killallServers([ servers[0] ])
|
||||
|
||||
await reRunServer(servers[0])
|
||||
})
|
||||
|
|
|
@ -8,7 +8,7 @@ function getHookType (hookName: string) {
|
|||
return HookType.STATIC
|
||||
}
|
||||
|
||||
async function internalRunHook <T>(handler: Function, hookType: HookType, result: T, params: any, onError: (err: Error) => void) {
|
||||
async function internalRunHook <T> (handler: Function, hookType: HookType, result: T, params: any, onError: (err: Error) => void) {
|
||||
try {
|
||||
if (hookType === HookType.FILTER) {
|
||||
const p = handler(result, params)
|
||||
|
|
Loading…
Reference in New Issue