sequelize-cli 使用記錄

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: '[email protected]'
      }], {});
  },

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章