Sequelize ORM sql 语句工具

发布于:2024-12-21 ⋅ 阅读:(10) ⋅ 点赞:(0)

Sequelize ORM sql 语句工具

初始化配置

Sequelize orm 配置文章@落日沉溺于海

  1. 在命令行中全局安装
npm i -g sequelize-cli
  1. sequelize 执行需要匹配 mysql2 对应的依赖(安装 mysql2)
npm i sequelize mysql2
  1. 初始化项目

sequelize init
  1. 熟悉初始化项目后的项目结构
  • config:时配置的意思,这里放的也就是 sequelize 所需要的连接数据库的配置文件
  • migrations:是迁移的意思,如果你需要对数据库做新增表,修改字段,删除表等操作,就需要在这里添加迁移文件了。而不是像以前那样,使用客户端软件直接操作数据库
  • models:这里面存放的模型文件,当我们使用 sequelize 来执行增删改查时,就需要用这里的模型文件了,每个模型都对应数据库中的一张表。
  • seeders:是存放种子文件。一般会将一些需要添加到数据表的测试数据存放在这里。只需要执行一个命令,数据表中就回自动填充进一些用来测试内容的了。
  1. 配置 config.js 文件
  • 第一个要改的就是密码,修改成 docker 配置里,我们设定的密码。接着要改的是数据库的名字,改为 clwy_api_development。
  • 最下面,还要加上时区的配置,因为我们中国是在+8 区。这样在查询的时候,时间才不会出错。
  • 那么同样的,也简单的给 test 和 production 也调整一下。

注意:json 文件中都必须为字符串要不有可能会报错。

  • The “data” argument must be one of type string, TypedArray, or DataView. Received type number (我将password配置为了 number,所以有了这个报错。改成 string 类型即可。)
{
  "development": {
    "username": "root",
    "password": "xxxx",
    "database": "yourmysql",
    "host": "127.0.0.1",
    "dialect": "mysql",
    "timezone": "+08:00"
  },
  "test": {
    "username": "root",
    "password": null,
    "database": "yourtestmysql",
    "host": "127.0.0.1",
    "dialect": "mysql",
    "timezone": "+08:00"
  },
  "production": {
    "username": "root",
    "password": null,
    "database": "yourproductionmysql",
    "host": "127.0.0.1",
    "dialect": "mysql",
    "timezone": "+08:00"
  }
}
  1. 使用 ORM 创建一个表
sequelize model:generate --name Article --attributes title:string,content:text

  1. 运行迁移
sequelize db:migrate

  1. 种子文件
sequelize seed:generate --name article

完成后,在 seeds 目录,就看到刚才命令新建的种子文件了。同样也是分为两个部分,up 部分用来填充数据,down 部分是反向操作,用来删除数据的。

种子文件改写代码如下

async up (queryInterface, Sequelize) {
  const articles = [];
  const counts = 100;

  for (let i = 1; i <= counts; i++) {
    const article = {
      title: `文章的标题 ${i}`,
      content: `文章的内容 ${i}`,
      createdAt: new Date(),
      updatedAt: new Date(),
    };

    articles.push(article);
  }

  await queryInterface.bulkInsert('Articles', articles, {});
},
  1. 运行种子
sequelize db:seed --seed xxx-article

sequelize 指令执行相关报错

  1. Unable to resolve sequelize package in C:\Users\ , 无法解析 C:\Users\中的 sequelize 包. 依次执行下面指令
    • npm install sequelize-cli -g
    • sequelize -h ,显示 Unable to resolve sequelize package in C:\Users\
    • npm install --save sequelize

网站公告

今日签到

点亮在社区的每一天
去签到