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 建立數據庫和表,並插入默認數據了。更多詳細信息,請參閱 這裏

相關文章
相關標籤/搜索