UNPKG

stackpress

Version:

Incept is a content management framework.

35 lines (34 loc) 1.17 kB
import Revisions from '../client/Revisions'; import { sequence } from '../sql/helpers'; export default async function install(server, database) { const config = server.config('client') || {}; const client = server.plugin('client') || {}; const models = Object.values(client.model); const queries = []; const order = sequence(models.map(model => model.config)); for (const model of order) { queries.push(database.dialect.drop(model.snake)); } for (const model of order.reverse()) { const exists = models.find(map => map.config.name === model.name); if (exists) { const create = exists.schema; create.engine = database; queries.push(...create.query()); } } if (config.revisions) { const revisions = new Revisions(config.revisions, server.loader); if (revisions.size() === 0) { revisions.insert(client.config); } } if (queries.length) { await database.transaction(async (connection) => { for (const query of queries) { await connection.query(query); } }); } } ;