loopback-migration-tool

1.4.0 • Public • Published

loopback-migration-tool

loopback-migration-tool expose the lb-migration script that ables you easy handle migrations and seeders for Loopback.io

Usage

Install Global

Install with Yarn

yarn global add loopback-migration-tool

or install with NPM

npm i -g loopback-migration-tool

Migrate all your models on all datasources.

lb-migration migrate

Migrate all your models on specific datasources.

lb-migration migrate --ds=datasource1 datasource2

Migrate specific models on specific datasources.

lb-migration migrate --ds=datasource1 datasource2 --model=model1 model2 model3

Migrate specific models using autoupdate method.

lb-migration migrate --model=model1 model2 model3 --method=update

Seed your models with files in ./seeds/*.js.

lb-migration seed

Seed your models with files in multiple locations.

lb-migration seed --src=path/to/files1/*.js path/to/files2/*.js path/to/files3/*.js  

Install as dev dependency

Install with Yarn

yarn add loopback-migration-tool --dev

or install with NPM

npm i loopback-migration-tool --save-dev

In your project root.

node_modules/.bin/lb-migration migrate [options] 

options

.lb-migrationrc.json

You can use a .lb-migrationrc.json to save your common migration settings.

Global options

Property Description Type Values Default As argument
app Path to your loopback application
main file.
String ./server/server.js -a
--app
--loopback-app

migrate

Important: Loopback's datasources uses two methods to migrate your models.

  • Auto-migration: Drop existing schema objects if they exist, and re-create them based on model definitions. Existing data will be lost.
  • Auto-update: Detect the difference between schema objects and model definitions, and alter the database schema objects. Keep existing data.

Be careful what method must you use.

Property Description Type Values Default As argument
ds Datasources that will be migrated.
If empty or not present, all datasources will be migrates.
String,
[String]
[] -d
--ds
--datasource
model Models in the selected datasources
that will be migrated. If empty or not present,
all models in all selected datasources will
be migrates. Selected Models not presents in
selected datasources will be not migrated.
[String] [] --mod
--model
ignored-model Models in the selected datasources
that will be not migrated.
[String] [] --imod
--ignored-model
method Loopback migration method to use.
Loopback uses automigrate and autoupdate methods
for migrations.
String update
migrate
migrate -m
--method

seed

Important: seed command will destroy all existing models' data calling to destroyAll method before start to seed them.

Property Description Type Values Default As argument
src File glob to your seeders files. String "./seeds/*.js" -s
--src
--sources

Seeder file

A seeder file is just a js module that exports a function where you fill your model's data. Seeder files are executed in lexicographic order.

The exported function receive a loopback-app instance as argument where you can find all the loopback app data, that includes the app.models object.

You can find a example here

./seeds/index.js

module.exports = function (app, cb) {
    let Travel = app.models.Travel

    let promises = _.map(data, function (entry) {
        let passengers = entry.passengers
        delete entry.passengers

        return Travel.create(entry)
            .then((travel) => travel.passengers.create(passengers))
    })

    return Promise.all(promises) //Or you can use cb argument when all is done, but not both.
}

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.4.0
    3
    • latest

Version History

Package Sidebar

Install

npm i loopback-migration-tool

Weekly Downloads

3

Version

1.4.0

License

MIT

Last publish

Collaborators

  • garusis