The Node.js wrapper(API Form) for flyway cli tool.
npm install wise-paas-datahub-dbmigratejavascript
const flywayCreator = require('wise-paas-scada-dbmigrate');
const flywayBasic = flywayCreator.flywayBasic;
const flywayCustom = flywayCreator.flywayCustom;
const flywayConf = {
host: '127.0.0.1',
port: '5432',
user: '',
pw: '',
db: '',
schema: 'scada_test'
};
try {
let flywayResult = flywayBasic.info(flywayConf);
console.log(flywayResult.result);
} catch (err) {
console.error(err);
}
`
API description
$3
* 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.
* 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.
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`參數說明。