stackpress
Version:
Incept is a content management framework.
22 lines (21 loc) • 796 B
JavaScript
import { sequence } from '../sql/helpers.js';
export default async function drop(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) {
queries.push(database.dialect.drop(model.snake));
}
if (queries.length) {
cli?.verbose && cli.control.system('Dropping 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 Dropped.');
}
}
;