sequelize-cli 使用记录

0. 初始化项目

$ npm init

1. 安装 sequelize-cli

$ npm install --save sequelize-cli sequelize mysql2

注意sequelize-cli 是要依赖于 sequelizemysql2 的。html

2. 生成 sequelize 目录

$ node_modules/.bin/sequelize init

执行上面命令,会生成如下几个文件夹:node

  • config:包含一个 config.json 文件
  • models:包含一个 index.js 文件
  • migrations:空文件夹
  • seeders:空文件夹

3. 配置链接数据库的信息

config/config.json 文件里的信息修改成本机数据库的信息:mysql

{
  "development": {
    "username": "root",
    "password": "123456",
    "database": "database_development",
    "host": "127.0.0.1",
    "dialect": "mysql"
  },
  "test": {
    "username": "root",
    "password": "123456",
    "database": "database_test",
    "host": "127.0.0.1",
    "dialect": "mysql"
  },
  "production": {
    "username": "root",
    "password": "123456",
    "database": "database_production",
    "host": "127.0.0.1",
    "dialect": "mysql"
  }
}

注意password 字段是字符串类型,切勿设置为数字类型。sql

4. 建立数据库

$ node_modules/.bin/sequelize db:create

执行上面命令,会一句 config/config.json 文件所配置的建立 database_development 数据库。数据库

database_development

5. 生成模型文件和迁移文件

$ node_modules/.bin/sequelize model:generate --name User --attributes firstName:string,lastName:string,email:string

执行上面命令会:npm

  • models 文件夹里生成一个 user.js 文件
  • migrations 文件夹里生成一个 20190210132709-create-user.js 文件

注意这里,我把 20190210132709-create-user.js 文件里的 createdAtupdatedAt 两个字段中的 allowNull 改为了 true,避免在后面的执行种子文件操做中报错。json

6. 执行迁移

$ node_modules/.bin/sequelize db:migrate

执行上面命令,会在 database_development 数据库中建立 sequelizemeta 表和 users 表。bash

table

users 表里面长这样:spa

users

7. 生成种子文件

$ node_modules/.bin/sequelize seed:generate --name demo-user

执行上面命令,会在 seeders 文件夹里生成一个 20190210132832-demo-user.js 文件,而后咱们将该文件修改为如下这样:code

'use strict';

module.exports = {
  up: (queryInterface, Sequelize) => {
    return queryInterface.bulkInsert('Users', [{
        firstName: 'John',
        lastName: 'Doe',
        email: 'demo@demo.com'
      }], {});
  },

  down: (queryInterface, Sequelize) => {
    return queryInterface.bulkDelete('Users', null, {});
  }
};

8. 执行种子文件

$ node_modules/.bin/sequelize db:seed:all

执行上面命令,会在 database_development 数据库的 users 表中插入一条数据。

users-with-seed

9. 总结

至此,咱们成功使用 sequelize-cli 建立数据库和表,并插入默认数据了。更多详细信息,请参阅 这里

相关文章
相关标签/搜索