|
|
|
|
@ -187,11 +187,27 @@ module.exports = {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
// -> Create DB Schema if different than the default 'public'
|
|
|
|
|
async createDefaultSchema () {
|
|
|
|
|
if (WIKI.config.db.schema && WIKI.config.db.schema !== 'public') {
|
|
|
|
|
// Don't create the schema if it already exists. This avoids errors
|
|
|
|
|
// when the user lacks permission to create new schemas while the schema
|
|
|
|
|
// already exists.
|
|
|
|
|
let matched_schemas = await self.knex.select('schema_name')
|
|
|
|
|
.from('information_schema.schemata')
|
|
|
|
|
.where('schema_name', WIKI.config.db.schema);
|
|
|
|
|
if (matched_schemas.length == 0) {
|
|
|
|
|
await self.knex.raw(`CREATE SCHEMA IF NOT EXISTS ${WIKI.config.db.schema};`)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
// -> Migrate DB Schemas
|
|
|
|
|
async syncSchemas () {
|
|
|
|
|
return self.knex.migrate.latest({
|
|
|
|
|
tableName: 'migrations',
|
|
|
|
|
migrationSource
|
|
|
|
|
migrationSource,
|
|
|
|
|
schemaName: (WIKI.config.db.schema && WIKI.config.db.schema !== 'public')
|
|
|
|
|
? WIKI.config.db.schema : undefined
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
// -> Migrate DB Schemas from beta
|
|
|
|
|
@ -202,6 +218,7 @@ module.exports = {
|
|
|
|
|
|
|
|
|
|
let initTasksQueue = (WIKI.IS_MASTER) ? [
|
|
|
|
|
initTasks.connect,
|
|
|
|
|
initTasks.createDefaultSchema,
|
|
|
|
|
initTasks.migrateFromBeta,
|
|
|
|
|
initTasks.syncSchemas
|
|
|
|
|
] : [
|
|
|
|
|
|