Database Plugin
discordjs-nextgen-db is a flexible, model-based database abstraction layer. It allows you to define models and perform CRUD operations across different databases like SQLite, MySQL, and MongoDB.
Installation
1npm i discordjs-nextgen-db
For SQLite support: npm i better-sqlite3
Setup
SQLite
1import { App } from 'discordjs-nextgen';2import { DatabasePlugin, SQLiteAdapter } from 'discordjs-nextgen-db';34const app = new App();56app.use(new DatabasePlugin({7 folder: './models', // Auto-load models from this folder8 adapter: new SQLiteAdapter({ path: './database.sqlite' })9}));
MySQL
1import { App } from 'discordjs-nextgen';2import { DatabasePlugin, MySQLAdapter } from 'discordjs-nextgen-db';34const app = new App();56app.use(new DatabasePlugin({7 folder: './models',8 adapter: new MySQLAdapter({9 host: 'localhost',10 user: 'root',11 password: 'password',12 database: 'nextgen'13 })14}));
MongoDB / Mongoose
1import { App } from 'discordjs-nextgen';2import { DatabasePlugin, MongooseAdapter } from 'discordjs-nextgen-db';34const app = new App();56app.use(new DatabasePlugin({7 folder: './models',8 adapter: new MongooseAdapter({9 uri: 'mongodb://localhost:27017/nextgen'10 })11}));
Define Your Models
Create models/user.ts:
1export default (db) => {2 db.define('user');3};
CRUD Operations
1// Inside a command or event2await ctx.db.user.create('burak', { coins: 100 });34const user = await ctx.db.user.get('burak');56await ctx.db.user.update('burak', { coins: user.coins + 50 });78await ctx.db.user.delete('burak');
Auto-Loading Models
Use app.models() to automatically load model definitions from a directory.