diff --git a/server/core/db.js b/server/core/db.js index 25f21ad3..c4da0e26 100644 --- a/server/core/db.js +++ b/server/core/db.js @@ -187,11 +187,19 @@ 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};`) + } + }, // -> 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 +210,7 @@ module.exports = { let initTasksQueue = (WIKI.IS_MASTER) ? [ initTasks.connect, + initTasks.createDefaultSchema, initTasks.migrateFromBeta, initTasks.syncSchemas ] : [ diff --git a/server/db/beta/index.js b/server/db/beta/index.js index aa3157c3..e2e14253 100644 --- a/server/db/beta/index.js +++ b/server/db/beta/index.js @@ -84,6 +84,8 @@ module.exports = { const baseMigrationPath = path.join(WIKI.SERVERPATH, (WIKI.config.db.type !== 'sqlite') ? 'db/beta/migrations' : 'db/beta/migrations-sqlite') await knex.migrate.latest({ tableName: 'migrations', + schemaName: (WIKI.config.db.schema && WIKI.config.db.schema !== 'public') + ? WIKI.config.db.schema : undefined, migrationSource: { async getMigrations() { const migrationFiles = await fs.readdir(baseMigrationPath)