docs/site/Importing-LB3-models.md
To simplify migration from LoopBack 3, LoopBack 4 provides a CLI tool to import LoopBack 3 models into your LoopBack 4 project.
{% include warning.html content=" This command is experimental and not feature-complete yet. See the list of known limitations below. " %}
Import one or more models from your LB 3.x application by running
lb4 import-lb3-models command.
lb3app: Path to the directory containing your LoopBack 3.x application.
{% include important.html content="
The generator loads the application via require(), it does not
support applications that are unable to boot (throw errors at startup).
" %}
outDir: Directory where to write the generated source file. Default:
src/models
{% include note.html content=" Please up-vote the tracking GitHub issue for scenarios that are important to your project. It will help us to better prioritize which limitations to remove first. " %}
The tracking GitHub issue: loopback-next#3811
When a property is defined with a complex object type, the nested property definitions are not converted from LB3 to LB4 format.
Workaround: Fix the generated definition manually.
The tracking GitHub issue: loopback-next#3812
Workaround: define relational metadata & navigational properties manually.
ObjectID typeThe tracking GitHub issue: loopback-next#3814.
For models attached to MongoDB datasource, the imported LB4 model contains
incorrect definition of the primary key property of ObjectID type.
As a workaround, you can change the property definition from:
@property({
type: ObjectID;
})
id: ObjectID;
to:
@property({
type: 'string',
mongodb: {dataType: 'ObjectID'}
})
id: string;
The following fields from model settings are not supported by LoopBack 4 and therefore ignored during import:
aclsmethodsmixinsvalidations