0. 初始化项目

$ npm init

1. 安装 sequelize-cli

$ npm install --save sequelize-cli sequelize mysql2

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

2. 生成 sequelize 目录

$ node_modules/.bin/sequelize init

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

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

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

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

{
  "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 字段是字符串类型,切勿设置为数字类型。

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

执行上面命令会:

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

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

6. 执行迁移

$ node_modules/.bin/sequelize db:migrate

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

table

users 表里面长这样:

users

7. 生成种子文件

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

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

'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 创建数据库和表,并插入默认数据了。更多详细信息,请参阅 这里


3santiago3
113 声望2 粉丝