Sequelize数据库在已有数据表结构的基础上,新增数据表
由于Sequelize数据库没有提供相应的解决办法,因此我们在建好迁移文件和种子文件之后,里面的内容需要我们自己补全。详细过程如下所示:
- 新建model
- Sequelize数据库查看命令:.\node_modules\.bin\sequelize
![](https://i-blog.csdnimg.cn/blog_migrate/f278775e8527c340292fd1208c4a364d.png)
3.使用命令.\node_modules\.bin\sequelize migration:generate --name XXX创建迁移文件
4.新建好迁移文件之后,使用命令:.\node_modules\.bin\sequelize db:migrate 执行迁移文件
5.打开数据库管理工具,查看表已建好.
![](https://i-blog.csdnimg.cn/blog_migrate/51875e17cfd50ab0e1d7fad1db9d9d72.png)
ERROR: Octal literals are not allowed in strict mode.
报错原因:
![](https://i-blog.csdnimg.cn/blog_migrate/6ae25dea6ba0b1623a0c5c6b3d495e5a.png)
过程总结:使用Sequelize-cil过程中,不管遇到什么问题,一定要还原所有运行的迁移和种子文件,即如下四条语句:
建表命令
.\node_modules\.bin\sequelize db:migrate
初始化表数据
.\node_modules\.bin\sequelize db:seed:all
删除表命令
.\node_modules\.bin\sequelize db:migrate:undo:all
删除表数据
.\node_modules\.bin\sequelize db:seed:undo:all
级联查询inventoryList和inventoryDetails表时,报错,但是我的inventoryDetails并没有createAt字段。
报错信息如下:
查询语句如下:
粗暴解决办法:将这两个多出来的字段屏蔽,如下图所示:
正常解决办法:
timestamps: false, //去除createAt updateAt