0.0.10 • Published 1 year ago

@syngenta-digital/dbv v0.0.10

Weekly downloads
5
License
Apache-2.0
Repository
github
Last release
1 year ago

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

0.0.10

1 year ago

0.0.9

1 year ago

0.0.8

2 years ago

0.0.7

2 years ago

0.0.6

3 years ago

0.0.5

3 years ago

0.0.3

3 years ago

0.0.2

3 years ago

0.0.4

3 years ago

0.0.1

3 years ago