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
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
40
server/initializers/migrations/0405-plugin.ts
Normal file
40
server/initializers/migrations/0405-plugin.ts
Normal file
|
@ -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
|
// Helpers to run hooks
|
||||||
const Hooks = {
|
const Hooks = {
|
||||||
wrapObject: <T, U extends ServerFilterHookName>(result: T, hookName: U) => {
|
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) => {
|
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 {
|
try {
|
||||||
await this.registerPluginOrTheme(plugin)
|
await this.registerPluginOrTheme(plugin)
|
||||||
} catch (err) {
|
} 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 })
|
logger.error('Cannot register plugin %s, skipping.', plugin.name, { err })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,7 +43,7 @@ describe('Test plugin action hooks', function () {
|
||||||
path: getPluginTestPath()
|
path: getPluginTestPath()
|
||||||
})
|
})
|
||||||
|
|
||||||
await killallServers([ servers[0] ])
|
killallServers([ servers[0] ])
|
||||||
|
|
||||||
await reRunServer(servers[0])
|
await reRunServer(servers[0])
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in New Issue
Block a user