Aller au contenu principal

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 que init() 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.