@syngenta-digital/dbv

0.0.10 • Public • Published

dbv-node

Database versioner to be used to version MySQL & Neo4j

Features

  • Able to run db migrations in a single command
  • Manages current version of the database
  • Able to randomize password and store in AWS SSM
  • Useful for CICD deployments
  • Better than sharing mysql exports

Installation

This is a Node.js module available through the npm registry.

Before installing, download and install Node.js. Node.js 0.10 or higher is required.

If this is a brand new project, make sure to create a package.json first with the npm init command.

Installation is done using the npm install command:

$ npm install @syngenta-digital/dbv

Basic Usage

MySQL

const versioner = require('syngenta-database-versioner');

await versioner.apply({
    engine: 'mysql',
    host: process.env.DB_HOST,
    masterUser: process.env.DB_MASTER_USER,
    masterPassword: process.env.DB_MASTER_PASSWORD,
    appDB: process.env.DB_NAME,
    appUsername: process.env.DB_APP_USER,
    paramName: `${process.env.STACK}/mysql-config`,
    region: process.env.REGION,
    versionsDirectory: 'application/v1/models/versions',
    useSSM: process.env.STAGE !== 'local' // this will rewrite the password for the master user and therefore make it unusable
});

Neo4j

const versioner = require('syngenta-database-versioner');

versioner.apply({
    engine: 'neo4j',
    host: process.env.DB_HOST,
    masterUser: process.env.DB_MASTER_USER,
    masterPassword: process.env.DB_MASTER_PASSWORD,
    encrypted: process.env.DB_ENCRYPTED,
    stack: process.env.STACK,
    region: process.env.REGION,
    versionsDirectory: 'application/v1/models/versions',
    useSSM: process.env.STAGE !== 'local' // this will rewrite the password for the master user and therefore make it unusable
});

NOTE: File names must be unique and only contain numbers (i.e. 1.sql, 2.sql, etc), this is how the package knows what order to run the files in

NEO4j NOTE: use .txt files (UTF-8 encoding) and each query must be on its own line (i.e. only 1 query per line); this tool splits on line breaks

Readme

Keywords

none

Package Sidebar

Install

npm i @syngenta-digital/dbv

Weekly Downloads

3

Version

0.0.10

License

Apache-2.0

Unpacked Size

35.6 kB

Total Files

25

Last publish

Collaborators

  • syngenta-developer
  • paulcruse-syn