loopback-component-auto-migrate v0.4.0
Loopback Component auto migrate database and load data
This loopback component enables you to migrate the database and import datas automatcally for the loopback application.
Installation
Install in you loopback project:
npm install --save loopback-component-auto-migrate
Create a component-config.json file in your server folder (if you don't already have one)
Configure options inside
component-config.json
:{ "loopback-component-auto-migrate": { "enabled": true, "raiseError": false, "migration": "auto-migrate-data", "models": ["Role"], "fixtures": "./test/fixtures/" } }
enabled
Boolean: whether enable this component. defaults: trueraiseError
Boolean: whether raise error. defaults: false- it wont stop to import data if not raise error.
migration
String : the migration ways:- "auto-migrate": drop and recreate the tables of the database.
- "auto-migrate-data": drop and recreate the tables, load datas from
fixtures
folder. - "auto-update" defaults: update the tables of the databse.
- "auto-update-data": update the tables, load datas from
fixtures
folder. - "auto-load-data": load datas from
fixtures
folder.
models
array of String|String: the models to process. defaults to the all models in the model-config.json- String: a config file location can be used instead of passing all list inside component-config.json. eg
"./test/models/model-list"
(you can use yaml, json or cson format by its extension name)
- String: a config file location can be used instead of passing all list inside component-config.json. eg
fixtures
String: the datas folder to import.- the file base name is the lowercase model name with dash seperated if any.
- the file extension name is the data file format, the following format is supported:
- cson
- yaml
- json
Usage
Automatically use it:
Just enable it on component-config.json
.
or run node_modules/.bin/slc-migrate
directly.
set DEBUG=loopback:component:autoMigrate:*
env variable to show debug info.
When it runs through component-config.json
, it is attaching the autoMigrate
promise at app.get('loopback-component-auto-migrate-done')
that you can use to know when all migrations, data importing etc have finished.
Also the loopback-component-auto-migrate-status
will be set for convenience:
- 'loaded': autoMigrate loaded.
- 'failed': autoMigrate failed.
- 'done': autoMigrate successful.
Manually use it:
autoMigrate = require('loopback-component-auto-migrate/lib/auto-migrate');
autoMigrate(app, {models:['Role'], fixtures: 'yourDataFolder'}).then()
Options:
Migration can be disabled for the model if you specify skipMigration
option in the ./server/model-config.json
file:
{
...
"customModel": {
"dataSource": "datasource",
"public": true,
"options": {
"skipMigration": true
}
}
...
}
History
v0.2.3
- attaching done Promise at the app.
v0.2.0
- hasMany relation data supports.