diff --git a/server/core/db.js b/server/core/db.js index c4da0e26..f554b9fd 100644 --- a/server/core/db.js +++ b/server/core/db.js @@ -190,7 +190,15 @@ module.exports = { // -> Create DB Schema if different than the default 'public' async createDefaultSchema () { if (WIKI.config.db.schema && WIKI.config.db.schema !== 'public') { - await self.knex.raw(`CREATE SCHEMA IF NOT EXISTS ${WIKI.config.db.schema};`) + // 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