Skip to content

Latest commit

 

History

History
97 lines (81 loc) · 3.35 KB

README.md

File metadata and controls

97 lines (81 loc) · 3.35 KB

sequelize-odbc-mssql

Sequelize dialect driver for the @ratanakvlun/node-odbc module

npm version npm downloads

The sequelize-odbc-mssql module is a MSSQL dialect driver for sequelize.

There are many Node.js MSSQL clients and sequelize defaults to using tedious, but being pure Javascript,tedious lacks support for integrated security on Windows systems. @ratanakvlun/node-odbc is a client that interfaces with a native ODBC library which allows integrated security to be used.

The purpose of sequelize-odbc-mssql is to provide sequelize with a dialect driver for @ratanakvlun/node-odbc.

Installation

npm install sequelize-odbc-mssql

Usage

Using sequelize-odbc-mssql is simple. Just specify sequelize-odbc-mssql as the dialectModulePath:

const Sequelize = require('sequelize');

let db = new Sequelize({
  dialect: 'mssql',
  dialectModulePath: 'sequelize-odbc-mssql',
  dialectOptions: {
    /* Configuration */
  }
});

Configuration

The following sequelize options are used by sequelize-odbc-mssql. Options specific to sequelize like pooling still apply to the sequelize layer.

  • database - Name of the database to use.
  • username - Username if using SQL authentication.
  • password - Password if using SQL authentication.
  • host - Hostname of the server. Default: localhost
  • port - Port if using TCP/IP to connect.
  • dialectOptions.driver - Name of the ODBC driver to use (e.g. SQL Server Native Client 10.0).
  • dialectOptions.instanceName - Name of the instance to connect to.
  • dialectOptions.trustedConnection - Indicates whether integrated security should be used. Default: false
  • dialectOptions.connectionString - Connection string to use. Overrides all other options if present.

If a driver is not provided in either dialectOptions.driver or dialectOptions.connectionString, sequelize-odbc-mssql will attempt to detect a driver.

Example: Using a connection string directly with sequelize pooling.

let db = new Sequelize({
  dialect: 'mssql',
  dialectModulePath: 'sequelize-odbc-mssql',
  dialectOptions: {
    connectionString: 'Driver={SQL Server Native Client 10.0};Server=localhost\\SQLEXPRESS;Database=finances;Trusted_Connection=yes;'
  },
  pool: {
    min: 0,
    max: 5,
    idle: 10000
  }
});

Example: Using Windows authentication.

let db = new Sequelize({
  dialect: 'mssql',
  dialectModulePath: 'sequelize-odbc-mssql',
  dialectOptions: {
    driver: 'SQL Server Native Client 10.0',
    instanceName: 'SQLEXPRESS',
    trustedConnection: true
  },
  host: 'localhost',
  database: 'finances'
});

Example: Using SQL authentication.

let db = new Sequelize({
  dialect: 'mssql',
  dialectModulePath: 'sequelize-odbc-mssql',
  dialectOptions: {
    driver: 'SQL Server Native Client 10.0',
    instanceName: 'SQLEXPRESS'
  },
  host: 'localhost',
  username: 'sa',
  password: 'password',
  database: 'finances'
});