docs/site/migration/datasources.md
{% include tip.html content=" Missing instructions for your LoopBack 3 use case? Please report a Migration docs issue on GitHub to let us know. " %}
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.
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 created
src/datasources/{dataSource.dataSourceName}.datasource.ts file in your
LoopBack 4 application with the datasource configuration from
server/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 the config
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.
{% include note.html content="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." %}
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.