前言
- 在 《loopback4入坑记录(二)》中成功创建了 Todo、TodoList、TodoListImage三个model,以及他们之间的关系。
- 现在将参照官网 在数据库中持久化这些model,先看下我成功的结果,用数据库软件er图展示的,其他的表不用关心。
正文开始
1. 将 《loopback4入坑记录(一)》中创建的数据源删除
rm src/datasources/db.datasource.*
2.创建新的数据源
lb4 datasource
说明:这里我用的是mysql,我的这个mysql是部署在自己腾讯云服务器上的,所以ip不方便公开,所以你们需要自己部署一台mysql服务器,并在做这个练习之前,测试一下它的连通性。
3.在Todo模型中指定外键约束
{
settings: {
foreignKeys: {
fk_todo_todoListId: {
name: 'fk_todo_todoListId',
entity: 'TodoList',
entityKey: 'id',
foreignKey: 'todoListId',
}
}
}
}
3.在TodoListImage模型中指定外键约束
{
settings: {
foreignKeys: {
fk_todoListImage_todoListId: {
name: 'fk_todoListImage_todoListId',
entity: 'TodoList',
entityKey: 'id',
foreignKey: 'todoListId',
},
},
},
}
4.修改 src/migrate.ts 文件
models: ['TodoList', 'Todo', 'TodoListImage'],
5.运行 npm run build
npm run build
6.运行 npm run migrate
npm run migrate
7.运行 npm start
npm run start
8.数据库中检查结果
你们可以用自己熟悉的数据库管理工具查看
总结
- 当执行
npm run build
和npm run migrate
已经npm start
后,以为就这样结束了,官网只是简单的说几个表已经创建,但是并未说去哪里验证这个结果。自己当时也是抱着试一试的心态去数据库中看了一下,很吃惊的发现有新增的三个表。 npm run migrate
这个命令,和 Django 中的python manage.py makemigrations
及python manage.py migrate
类似,都是对数据model进行变动后需要来一次 (迁移)migrate。