0.4.0 • Published 6 years ago

loopback-component-auto-migrate v0.4.0

Weekly downloads
107
License
MIT
Repository
github
Last release
6 years ago

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

  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:

    {
      "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|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)
  • 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.
0.4.0

6 years ago

0.3.1

7 years ago

0.3.0

7 years ago

0.2.7

8 years ago

0.2.6

8 years ago

0.2.5

8 years ago

0.2.4

8 years ago

0.2.3

8 years ago

0.2.2

8 years ago

0.2.1

8 years ago

0.2.0

8 years ago

0.1.4

8 years ago

0.1.3

8 years ago

0.1.2

8 years ago

0.1.1

9 years ago

0.1.0

9 years ago

0.0.0

9 years ago