Tip: Missing instructions for your LoopBack 3 use case? Please report a Migration docs issue on GitHub to let us know.
Overview
LoopBack 3 datasources are compatible with LoopBack 4 datasources, so migrating datasources from LoopBack 3 to LoopBack 4 is simple.
In LoopBack 3, all datasources are defined in the server/datasources.json
file, whereas in LoopBack 4 each datasource is defined in its own file in the
src/datasources
folder. Each LoopBack 4 datasource is represented as a class,
the source file (e.g. mysql-ds.datasource.ts
) includes both the configuration
and the class definition.
Migration Steps
To migrate a datasource from LoopBack 3 to LoopBack 4, complete the following steps:
-
In the root of your LoopBack 4 application, use the
lb4 datasource
command to create a new datasource and enter the same datasource name as your LoopBack 3 application’s datasource (e.g.mysqlDs
):$ lb4 datasource ? Datasource name: mysqlDs
-
For the remaining prompts from the
lb4 datasource
command, use the defaults (press Enter for each one) since these will be replaced in the next step:? Select the connector for mysqlDs: In-memory db (supported by StrongLoop) ? window.localStorage key to use for persistence (browser only): ? Full path to file for persistence (server only):
-
Replace content of the
config
object defined in the newly createdsrc/datasources/{dataSource.dataSourceName}.datasource.ts
file in your LoopBack 4 application with the datasource configuration fromserver/datasources.json
in your LoopBack 3 application.For example, if your
server/datasources.json
file contains:{ "mysqlDs": { "name": "mysqlDs", "connector": "mysql", "host": "demo.strongloop.com", "port": 3306, "database": "getting_started", "username": "demo", "password": "L00pBack" } }
Move it to
src/datasources/mysql-ds.datasource.ts
, so that theconfig
object is defined as follows:const config = { name: 'mysqlDs', connector: 'mysql', host: 'demo.strongloop.com', port: 3306, database: 'getting_started', username: 'demo', password: 'L00pBack', };
-
Repeat steps 1-3 for each datasource you want to migrate.
Note:
We are working on a CLI command lb4 import-lb3-datasources
that will migrate datasources from a mounted LoopBack 3 application to a LoopBack 4 project automatically. See GitHub issue #4346 for more details.
Compatibility
As mentioned before, LoopBack 3 datasources are compatible with LoopBack 4
datasources. In both, a datasource is a connector instance that is used by
legacy-juggler-bridge
. For example, both a LoopBack 3 MySQL datasource and a
LoopBack 4 MySQL datasource will use
loopback-connector-mysql
.