npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

loopback-connector-dashdb

v2.0.5

Published

LoopBack Connector for IBM dashDB

Downloads

224

Readme

loopback-connector-dashdb

IBM® DashDB® 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-dashdb module is the LoopBack connector for dashDB.

The LoopBack DashDB connector supports:

  • All CRUD operations.
  • Queries with fields, limit, order, skip and where filters.
  • All supported DASHDB LUW versions as well as dashDB. Note for dashDB set supportDashDB in the loopback datasource definition. Column organized tables are not supported.

Installation

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

$ npm install loopback-connector-dashdb --save

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

Configuration

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

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

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

"mydb": {
  "name": "mydb",
  "connector": "dashdb",
  "username": <username>,
  "password": <password>,
  "database": <database name>,
  "hostname": <dashdb 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 | DASHDB Username password | String | DASHDB password associated with the username above hostname | String | DASHDB server hostname or IP address port | String | DASHDB server TCP port number useLimitOffset | Boolean | LIMIT and OFFSET must be configured on the DASHDB server before use (compatibility mode) supportDashDB | Boolean | Create ROW ORGANIZED tables to support dashDB. minPoolSize | Number | Set the minimum size of the connection pool | maxPoolSize | Number | Set the maximum size of 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 DASHDB = require('loopback-connector-dashdb');

var config = {
  username: process.env.DASHDB_USERNAME,
  password: process.env.DASHDB_PASSWORD,
  hostname: process.env.DASHDB_HOSTNAME,
  port: 50000,
  database: 'SQLDB',
};

var db = new DataSource(DASHDB, 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: '[email protected]',
  }, 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');
  });
});

Operators

Here is a list of operators supported by the connector:

  • regexp operator
  Employee.find({where: {taskCode: {regexp: /tsk/i}}}, function(err, result) {
    if (err) throw err;
    console.log('Found instance with regexp: ' + JSON.stringify(result));
  });
  • like operator
  Employee.find({where: {taskCode: {like: 'TSK%'}}}, function(err, result) {
    if (err) throw err;
    console.log('Found instance with like: ' + JSON.stringify(result));
  });
  • nlike operator
  Employee.find({where: {taskCode: {nlike: 'TSK%'}}}, function(err, result) {
    if (err) throw err;
    console.log('Found instance with like: ' + JSON.stringify(result));
  });

Running tests

Own instance

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

  • Linux
DASHDB_HOSTNAME=<HOST> DASHDB_PORTNUM=<PORT> DASHDB_USERNAME=<USER> DASHDB_PASSWORD=<PASSWORD> DASHDB_DATABASE=<DATABASE> DASHDB_SCHEMA=<SCHEMA> CI=true npm test
  • Windows
SET DASHDB_HOSTNAME=<HOST>
SET DASHDB_PORTNUM=<PORT>
SET DASHDB_USERNAME=<USER>
SET DASHDB_PASSWORD=<PASSWORD>
SET DASHDB_DATABASE=<DATABASE>
SET DASHDB_SCHEMA=<SCHEMA>
SET CI=true
npm test

The value for DASHDB_SCHEMA must be of the pattern SCHEMA{build number}_{build name}_{platform}_{node version}. For example : SCHEMA1_DASHDB_DARWIN_10.

Alternatively, let DASHDB_SCHEMA be computed for you by setting these values instead:

export PACKAGE_NAME=loopback-connector-dashdb 
export BUILD_NUMBER={build number}   For example: 1
export nodeVersion={node version}    For example: 10

This will create a schema with the name: SCHEMA1_DASHDB_DARWIN_10

This pattern of the schema name is important for database cleanup and seeding purposes.

Docker

  • DashDB has a docker image which could be signed up for a trial version and be used for testing. For more information, please visit: DashDB Docker
  • Once the instance is ready, please follow the above information on how to run tests using your own instance