> Discover all available pages from the documentation index: https://mastra.zisheng.pro/fr/llms.txt # Stockage MSSQL L’implémentation du stockage MSSQL fournit une solution prête pour la production qui utilise des bases de données Microsoft SQL Server. ## Installation **npm**: ```bash npm install @mastra/mssql@latest ``` **pnpm**: ```bash pnpm add @mastra/mssql@latest ``` **Yarn**: ```bash yarn add @mastra/mssql@latest ``` **Bun**: ```bash bun add @mastra/mssql@latest ``` ## Utilisation ```typescript import { MSSQLStore } from '@mastra/mssql' const storage = new MSSQLStore({ id: 'mssql-storage', connectionString: process.env.DATABASE_URL, }) ``` ## Paramètres **connectionString** (`string`): Chaîne de connexion MSSQL (par exemple, Server=localhost,1433;Database=mydb;User Id=sa;Password=password;Encrypt=true;TrustServerCertificate=true) **schemaName** (`string`): Nom du schéma que le stockage doit utiliser. Si cette valeur n’est pas fournie, le schéma par défaut est utilisé. ## Exemples de constructeur Vous pouvez instancier `MSSQLStore` de plusieurs façons : ```ts import { MSSQLStore } from '@mastra/mssql' // Using a connection string only const store1 = new MSSQLStore({ id: 'mssql-storage-1', connectionString: 'Server=localhost,1433;Database=mydb;User Id=sa;Password=password;Encrypt=true;TrustServerCertificate=true', }) // Using a connection string with a custom schema name const store2 = new MSSQLStore({ id: 'mssql-storage-2', connectionString: 'Server=localhost,1433;Database=mydb;User Id=sa;Password=password;Encrypt=true;TrustServerCertificate=true', schemaName: 'custom_schema', // optional }) // Using individual connection parameters const store4 = new MSSQLStore({ id: 'mssql-storage-3', server: 'localhost', port: 1433, database: 'mydb', user: 'user', password: 'password', }) // Individual parameters with schemaName const store5 = new MSSQLStore({ id: 'mssql-storage-4', server: 'localhost', port: 1433, database: 'mydb', user: 'user', password: 'password', schemaName: 'custom_schema', // optional }) ``` ## Remarques supplémentaires ### Gestion des schémas L’implémentation du stockage gère automatiquement la création et la mise à jour des schémas. Elle crée les tables suivantes : - `mastra_workflow_snapshot` : stocke l’état des Workflows et les données d’exécution - `mastra_evals` : stocke les résultats des évaluations et les métadonnées - `mastra_threads` : stocke les fils de conversation - `mastra_messages` : stocke les messages individuels - `mastra_traces` : stocke les données de télémétrie et de tracing - `mastra_scorers` : stocke les données de notation et d’évaluation - `mastra_resources` : stocke les données de mémoire de travail des ressources ### Initialisation Lorsque vous transmettez le stockage à la classe Mastra, `init()` est appelée automatiquement avant toute opération de stockage : ```typescript import { Mastra } from '@mastra/core' import { MSSQLStore } from '@mastra/mssql' const storage = new MSSQLStore({ connectionString: process.env.DATABASE_URL, }) const mastra = new Mastra({ storage, // init() is called automatically }) ``` Si vous utilisez directement le stockage sans Mastra, vous devez appeler explicitement `init()` pour créer les tables : ```typescript import { MSSQLStore } from '@mastra/mssql' const storage = new MSSQLStore({ id: 'mssql-storage', connectionString: process.env.DATABASE_URL, }) // Required when using storage directly await storage.init() // Access domain-specific stores via getStore() const memoryStore = await storage.getStore('memory') const thread = await memoryStore?.getThreadById({ threadId: '...' }) ``` > **Attention:** Si `init()` n’est pas appelée, les tables ne sont pas créées et les opérations de stockage échouent silencieusement ou lèvent des erreurs. ### Accès direct à la base de données et au pool `MSSQLStore` expose le pool de connexions mssql sous forme de champ public : ```typescript store.pool // mssql connection pool instance ``` Il permet d’effectuer des requêtes directes et de gérer des transactions personnalisées. Lorsque vous utilisez ce champ : - Vous êtes responsable de la bonne gestion des connexions et des transactions. - La fermeture du stockage (`store.close()`) détruit le pool de connexions associé. - L’accès direct contourne toute logique ou validation supplémentaire fournie par les méthodes de MSSQLStore. Cette approche est destinée aux scénarios avancés qui nécessitent un accès de bas niveau.