@letscomunica/loopback-auto-migrate-component

0.0.2-rc.1 • Public • Published

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 - snowyu.lee@gmail.com

Updated Author: Lets Comunica

LAST VERSION: 0.0.2

Installation

  1. Install in you loopback project:
  npm install --save git+ssh://git@bitbucket.org/letscomunicadev/loopback-lets-auto-migrate-component.git#v0.0.2
  1. Create a component-config.json file in your server folder (if you don't already have one)

  2. 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: true
  • raiseError [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"
  • 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://git@bitbucket.org/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.

Package Sidebar

Install

npm i @letscomunica/loopback-auto-migrate-component

Weekly Downloads

0

Version

0.0.2-rc.1

License

MIT

Unpacked Size

48.6 kB

Total Files

39

Last publish

Collaborators

  • juniodesouza
  • davikawasaki
  • viniciusromano
  • matheusflausino