@letscomunica/loopback-auto-migrate-component
v0.0.2-rc.1
Published
migrate the database and import datas automatcally for the loopback application.
Downloads
6
Readme
Component AutoMigrate from Boot Loopback Component
This loopback component enables you to migrate the database and import datas automatcally for the loopback application.
Original Author: Riceball LEE - [email protected]
Updated Author: Lets Comunica
LAST VERSION: 0.0.2
Installation
- Install in you loopback project:
npm install --save git+ssh://[email protected]/letscomunicadev/loopback-lets-auto-migrate-component.git#v0.0.2
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]: the models to process. defaults to the all models in the model-config.json- a JSON file location can be used instead of passing all list inside component-config.json:
"./test/models/model-list.json"
- a JSON file location can be used instead of passing all list inside component-config.json:
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()
Updates
Made a modification? Test it at least in one project before submiting a version. It still needs unit testing and CI with projects. After everything seems perfectly up-to-date, run the following steps:
1. Commit and push your updates using Let's Bitbucket credentials
2. Change and commit a new tag version (always check and update the last version here and in package.json):
$ git tag -a vX.X.X -m "version_message"
3. Push the new tag version to remote repository:
$ git push origin vX.X.X # Version needs to be the same from commit
4. Run npm installation with the newest version:
npm install --save git+ssh://[email protected]/letscomunicadev/loopback-lets-auto-migrate-component.git#vX.X.X
Fork History
v0.0.2
- changed package.json module details.
v0.0.1
- added load models option from JSON file.
Original History
v0.2.3
- attaching done Promise at the app.
v0.2.0
- hasMany relation data supports.