Installation
Installer le paquet
npm install @fca.gg/orm
Le paquet embarque Knex et les pilotes mysql et pg.
Activer les décorateurs
Les modèles utilisent les décorateurs historiques de TypeScript. Activez-les dans votre tsconfig.json :
tsconfig.json
{
"compilerOptions": {
"experimentalDecorators": true,
"emitDecoratorMetadata": true
}
}
Configurer la base
L'ORM lit la configuration Knex dans un fichier knexfile.js à la racine du projet (le dossier depuis lequel vous lancez l'application et la CLI) :
knexfile.js
module.exports = {
client: 'mysql2', // ou 'pg' pour PostgreSQL
connection: {
host: 'localhost',
user: 'username',
password: 'password',
database: 'database_name',
},
pool: {min: 2, max: 10},
migrations: {
tableName: 'knex_migrations',
directory: './migrations',
},
};
Gardez les identifiants hors du dépôt, par exemple avec des variables d'environnement lues dans ce fichier.
Ouvrir la connexion
import {KnexInstance} from '@fca.gg/orm';
await KnexInstance.init();
init()est asynchrone : attendez-le avant la première requête. Un second appel ne fait rien.KnexInstance.get()renvoie l'instance Knex, pour vos propres requêtes. Il lève une erreur tant queinit()n'a pas été appelé.KnexInstance.destroy()ferme la connexion, par exemple à l'arrêt du bot.
Ensuite, décrivez vos tables avec des modèles.