stackpress
Version:
Incept is a content management framework.
25 lines (24 loc) • 916 B
JavaScript
import { sequence } from '../sql/helpers.js';
export default async function purge(server, database, cli) {
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) {
const exists = models.find(map => map.config.name === model.name);
if (exists) {
queries.push(database.dialect.truncate(model.snake, true));
}
}
if (queries.length) {
cli?.verbose && cli.control.system('Purging database...');
await database.transaction(async (connection) => {
for (const query of queries) {
cli?.verbose && cli.control.info(query.query);
await connection.query(query);
}
});
cli?.verbose && cli.control.success('Database Purged.');
}
}
;