flyway-rest

0.0.4 • Public • Published

flyway-restBuild Status npm version Dependency Status

REST interface for flyway.

Install

Run docker container

docker run

Run the development environment:

$ git clone https://github.com/stefanwalther/flyway-rest && cd flyway-rest
 
$ docker-comose up --f=./docker/docker-compose.dev.yml up

Usage

End Points

All endpoints share the same parameters. All endpoints are also described in an OpenAPI definition file (swagger), which can be accessed at http://:/api-docs/

Parameters

Post parameters

  • mode - The execution mode. The following values are possible:
    • get-cmd - Does not execute the command, just validates and processes the request and returns the generated command (see cmd in the result).
    • sync - Executes the command synchronously and returns the result
  • flyway_args - Flyway arguments as used in "Flyway Command-line"
  • files -

Result

  • status - Status of the operation. Can have the following values:
    • OK - Everything OK.
    • Error - An error occurred, see error for more details.
    • ValidationError - A validation error occurred, see validationErrors for more details.
  • mode - The execution mode as passed in.
  • cmd - The CLI command as generated, based on the input arguments.
  • errorMsg - Error message in case of status equals Error or ValidationError.
  • validationErrors - Array of validation errors.

Examples

The examples use superagent, so install that first:

$ npm install superagent --save

Clean

import superagent from 'superagent'
 
const url = '';
let args = {
  
};
 
superagent( url )
  .post( '/clean` )
  .send( 'args' )
  ;
  

Migrate

import superagent from 'superagent';
import fs from 'fs';

// Create a list of file definitions

const url = '';
let args = {
  mode: 'sync',
  flyway_args: {
    url: 'jdbc:postgresql://server-name:5432/your-db',
    user: 'postgres',
    password: 'postgres'
  },
  files: fileDefs
};

superagent( url )
  .post( '/migrate' )
  .send( args )
  .end( ( err, res ) => {
    if (err) console.error( err );
    
    // DB has been migrated    
    console.log( 'Migration result: ', res.body );
    
  });

## Todos

- [ ] Clear separation of concerns:
  - [ ] container flyway-rest-integration should not execute unit tests
- [ ] Container optimization
  - [ ] No need to do the full install on flyway-rest-integration; could use only a subset of devDependencies
- [ ] nodemon should not be part of the official image

## Author

**Stefan Walther**

* [github/stefanwalther](https://github.com/stefanwalther)
* [twitter/waltherstefan](http://twitter.com/waltherstefan)

## License

Released under the MIT license.

***

_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.2.0, on November 30, 2016._

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 0.0.4
    2
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 0.0.4
    2

Package Sidebar

Install

npm i flyway-rest

Weekly Downloads

2

Version

0.0.4

License

MIT

Last publish

Collaborators

  • stefanwalther