wise-paas-notify-dbmigrate
v1.1.12
Published
The Node.js wrapper(API Form) for flyway cli tool.
Downloads
5
Readme
Introduction
- This is a Node.js wrapper for flyway(migration cli tool).
Requirement
- If your OS is linux, we put java binary file in project by default, and program will auto apply that version.
- If your OS isn't Linux, you need to install java 8 (java 9 will cause some issues).
- Node.js: 8.X.X
Usage
const flywayCreator = require('wise-paas-notify-dbmigrate');
const flywayBasic = flywayCreator.flywayBasic;
const flywayCustom = flywayCreator.flywayCustom;
const flywayConf = {
host: '127.0.0.1',
port: '5432',
user: '',
pw: '',
db: '',
schema: ''
};
try {
let flywayResult = flywayBasic.info(flywayConf);
console.log(flywayResult.result);
} catch (err) {
console.error(err);
}
API description
All APIs are synchronous.
- Basic API
flywayBasic.info(flywayConf)
flywayBasic.migrate(flywayConf)
- We add "
group: true
" option by default, reason to do batch transaction, so this api has a little bit difference between nativ one.
- We add "
flywayBasic.validate(flywayConf)
flywayBasic.baseline(flywayConf)
flywayBasic.clean(flywayConf)
- Customized API
flywayCustom.baselineOnMigrate(flywayConf)
- We add addtional options by default:
group: true
: do batch transaction.baselineOnMigrate: true
: Whether to automatically call baseline when migrate is executed against a non-empty schema with no metadata table. This schema will then be baselined with the baselineVersion before executing the migrations. Only migrations above baselineVersion will then be applied.
- We add addtional options by default:
Test Case
- [x] For empty schema, migrate v1
- [x] For empty schema, V1,V2,V3, migrate respectively, ex. migrate V1, then create V2 file, finally run migrate V2...
- [x] Use Migrate, For empty schema, V1,V2,V3, batch migrate, migrate these 3 sql files continuously
- [x] Use baselineOnMigrate, For empty schema, V1,V2,V3, batch migrate, migrate these 3 sql files continuously
- [x] transaction: one file and batch files
- [x] For existed schema, it will baseline cureent schema and value as V1, then run migration from V2.
- [x] Test if run on multi instance PCF is OK.
Notes
flywayBasic.clean(flywayConf)
會刪除schema,包含裡面的table,reloation等等....使用前請在三確認,建議可以再測試環境試試看。flywayCustom.baselineOnMigrate(flywayConf)
使用前請確認existed schema跟migration V1是相同的,因為Baseline後會從V2開始做migrate,詳情請參考baselineOnMigrate
參數說明。
Reference
- https://flywaydb.org/
- markgardner/node-flywaydb
- gomoob/grunt-flyway