sequelize結合sequelize-cli使用

基本配置

sequelize安裝
yarn add sequelize
yarn add sequelize-cli
yarn add mysql2
查看有哪些命令
.\node_modules\.bin\sequelize
初始化
.\node_modules\.bin\sequelize init
# 生成對應的文件夾
# config 配置文件夾
# migrations 遷移文件夾
# models 模型文件夾
# seeders 種子文件夾
配置數據庫
// config -> config.json
// 三種開發環境的, 只是取一種, 開發環境
"development": {
    "username": "root",
    "password": "root",
    "database": "sequelize_db",
    "host": "127.0.0.1",
    "dialect": "mysql",
    "operatorsAliases": false // 刪除這一行, 上一行的逗號也去掉
},

基本使用

創建數據庫
 # 設置數據庫默認編碼爲utf8
 .\node_modules\.bin\sequelize db:create --charset 'utf8'
創建模型和遷移文件
# create 和 generate 都可以
# 如果表的字段很多的話, 那麼命令行就寫一兩個, 後面可以在文件裏面更改
.\node_modules\.bin\sequelize model:create --name User --attributes username:string,password:string
數據類型

官方文檔

// 遷移文件
Sequelize.STRING // varchar(255)
Sequelize.STRING(50)

Sequelize.INTEGER

Sequelize.TEXT  

Sequelize.BIGINT              
Sequelize.BIGINT(11) 

Sequelize.FLOAT                       // FLOAT
Sequelize.FLOAT(11)                   // FLOAT(11)
Sequelize.FLOAT(11, 10)               // FLOAT(11,10)

Sequelize.DOUBLE                      // DOUBLE
Sequelize.DOUBLE(11)                  // DOUBLE(11)
Sequelize.DOUBLE(11, 10)              // DOUBLE(11,10)

Sequelize.DECIMAL                     // DECIMAL
Sequelize.DECIMAL(10, 2)              // DECIMAL(10,2)

Sequelize.DATE                        // DATETIME for mysql / sqlite, TIMESTAMP WITH TIME ZONE for postgres
Sequelize.DATE(6)                     // DATETIME(6) for mysql 5.6.4+. Fractional seconds support with up to 6 digits of precision
Sequelize.DATEONLY                    // DATE without time.
Sequelize.BOOLEAN                     // TINYINT(1)

Sequelize.ENUM('value 1', 'value 2')  // An ENUM with allowed values 'value 1' and 'value 2'

Sequelize.JSON                        // JSON column. PostgreSQL, SQLite and MySQL only.
遷移文件字段屬性
// 遷移文件 設計數據表的
{
	allowNull: false, // 是否允許爲空
	autoIncrement: true, // 字段是否是自增類型
	primaryKey: true, // 字段是否是主鍵
	type: Sequelize.INTEGER // 字段是整型
    defaultValue: null, // 字段默認值
    unique: true // 唯一索引
}
添加索引
// 遷移文件, 也可以在這裏添加唯一索引
up: (queryInterface, Sequelize) => {
    return queryInterface.createTable('Users', {
      
    }).then(()=>{
      // ===================普通索引=======================================
      return queryInterface.addIndex('users', ['email'])
      
      // ===================普通索引=======================================
      /* return queryInterface.addIndex('users', {
        name: 'email-index',
        fields: ['email']
      }) */
      
      // =======================唯一索引====================================
       /* return queryInterface.addIndex('users', ['username'], {
        unique: true
      }) */
      
      // ========================唯一索引====================================
      /* return queryInterface.addIndex('users', {
        name: 'username',
        unique: true,
        fields: ['username']
      }); */
    });
  },
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章