loopbackio / loopback-connector-db2

LoopBack Connector for IBM DB/2
Other
17 stars 14 forks source link

loopback-connector-db2

IBM® DB2® is the database of choice for robust, enterprise-wide solutions handling high-volume workloads. It is optimized to deliver industry-leading performance while lowering costs. The loopback-connector-db2 module is the LoopBack connector for DB2.

The LoopBack DB2 connector supports:

Installation

Enter the following in the top-level directory of your LoopBack application:

$ npm install loopback-connector-db2 --save

The --save option adds the dependency to the application's package.json file.

Configuration

Use the data source generator to add the DB2 data source to your application. The entry in the application's server/datasources.json will look something like this:

"mydb": {
  "name": "mydb",
  "connector": "db2"
}

Edit server/datasources.json to add other supported properties as required:

"mydb": {
  "name": "mydb",
  "connector": "db2",
  "username": <username>,
  "password": <password>,
  "database": <database name>,
  "hostname": <db2 server hostname>,
  "port":     <port number>
}

The following table describes the connector properties.

Property          Type   Description
database String Database name
schema String Specifies the default schema name that is used to qualify unqualified database objects in dynamically prepared SQL statements. The value of this property sets the value in the CURRENT SCHEMA special register on the database server. The schema name is case-sensitive, and must be specified in uppercase characters
username String DB2 Username
password String DB2 password associated with the username above
hostname String DB2 server hostname or IP address
port String DB2 server TCP port number
useLimitOffset Boolean LIMIT and OFFSET must be configured on the DB2 server before use (compatibility mode)
supportDashDB Boolean Create ROW ORGANIZED tables to support dashDB.
dsn String DSN string; can be used instead of the username, password, database, hostname and port properties
maxPoolSize Number Maximum number of connections in the connection pool

Alternatively, you can create and configure the data source in JavaScript code. For example:

var DataSource = require('loopback-datasource-juggler').DataSource;
var DB2 = require('loopback-connector-db2');

var config = {
  username: process.env.DB2_USERNAME,
  password: process.env.DB2_PASSWORD,
  hostname: process.env.DB2_HOSTNAME,
  port: 50000,
  database: 'SQLDB',
};

var db = new DataSource(DB2, config);

var User = db.define('User', {
  name: { type: String },
  email: { type: String },
});

db.autoupdate('User', function(err) {
  if (err) {
    console.log(err);
    return;
  }

  User.create({
    name: 'Tony',
    email: 'tony@t.com',
  }, function(err, user) {
    console.log(err, user);
  });

  User.find({ where: { name: 'Tony' }}, function(err, users) {
    console.log(err, users);
  });

  User.destroyAll(function() {
    console.log('example complete');
  });
});

Running tests

Own instance

If you have a local or remote DB2 instance and would like to use that to run the test suite, use the following command:

How to get a local DB2 instance:

IBM DB2 Express-C scenario on Windows:

>set db2instance=server1

>db2 connect to sample

>db2 set schema to STRONGLOOP

Docker

If you do not have a local DB2 instance, you can also run the test suite with very minimal requirements.