migrate the database and import datas automatcally for the loopback application.
npm install loopback-component-auto-migrateThis loopback component enables you to migrate the database and import datas automatcally for the loopback application.
1. Install in you loopback project:
npm install --save loopback-component-auto-migrate
2. Create a component-config.json file in your server folder (if you don't already have one)
3. Configure options inside component-config.json:
``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: falsemigration
* it wont stop to import data if not raise error.
- [String] : the migration ways:fixtures
* "auto-migrate": drop and recreate the tables of the database.
* "auto-migrate-data": drop and recreate the tables, load datas from folder.fixtures
"auto-update" defaults*: update the tables of the databse.
* "auto-update-data": update the tables, load datas from folder.fixtures
* "auto-load-data": load datas from folder.models
- [array of String]|[String]: the models to process. defaults to the all models in the model-config.json"./test/models/model-list"
[String]: a config file location can be used instead of passing all list inside component-config.json*. eg (you can use yaml, json or cson format by its extension name)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
#### 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:
`js
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
}
}
...
}
+ attaching done Promise at the app.
+ hasMany relation data supports.