koa中自动创建数据表

  1. 执行npm install sequelize --save命令
  2. 将sequelize链接到MySQL数据库,并配置一些数据库的参数
    (1)在core目录下创建db.js文件
const Sequelize = require('sequelize')
const {dbName, user, password, host, port} = require('../config/config').database

// 第一个参数:链接数据库的数据库名
// 第二个参数: 数据库的账号
// 第三个参数: 账号密码
// 第四个参数:一个js对象(因为里面的参数非常多)
// 注意我们应该把参数写在配置文件config.js中
const sequelize = new Sequelize(dbName, user, password, {
  dialect: 'mysql', // 指定数据库的类型,需要先安装mysql2
  host,
  port,
  logging:true, //默认值为true,是否在控制台中显示具体的mysql操作
  timezone: '+08:00', //一定要这么设置才能按照北京时间来记录时间相关的数据
  // timestamps: false 设置为false就不会生成createdAt和updatedAt这两个字段了
  // 我们最好还是设置为true
  // paranoid设置为true,添加字段deletedAt
  // deletedAt,updatedAt,createdAt设置默认属性的名字
  // underscored设置为true,将所有的驼峰命名的字段名称转换为以下划线链接的字段名称
  define: {
    timestamps: true,
    paranoid: true,
    createdAt: 'created_at',
    updatedAt: 'updated_at',
    deletedAt: 'deleted_at',
    underscored: true
  }
})

// force: true 当我们添加字段的时候数据库会自动删除原先的表格并更新字段,开发阶段可以设置为true
// 注意在生产环境下千万不要将其设置为true,它会把所有的记录都删除掉
// 所以我们还是设置为false比较安全,添加字段,我们还是手动删除原先的表格然后刷新加载比较好
sequelize.sync({
  force: true
})

module.exports = {
  sequelize
}

config.js

module.exports = {
  // dev表示开发环境 prod表示生产环境
  environment: 'dev',
  database: {
    dbName: 'island',
    host: 'localhost',
    port: '3306',
    user: 'root',
    password: ''
  }
}

(2)在app文件夹下创建models文件夹存放模型文件
例如创建user.js存放用户相关的模型

const {sequelize} = require('../../core/db')

const {Sequelize, Model} = require('sequelize')

class User extends Model{

}

// Sequelize.STRING数据类型为字符串
// Sequelize.STRING(64)最小长度为64
// unique 值是唯一的
// 用户的id编号我们不用显示指定,mysql会自动添加
// primaryKey主键,当属性为不变且唯一的话,都可以作为主键,如email、openid属性
// 主键的两个条件:不能重复,不能为空
// autoIncrement自动增长id编号
User.init({
  id: {
    type: Sequelize.INTEGER,
    primaryKey: true,
    autoIncrement: true
  },
  nickname: Sequelize.STRING,
  email: Sequelize.STRING,
  password: Sequelize.STRING,
  openid: {
    type: Sequelize.STRING(64),
    unique: true
  }
},{
  sequelize,
  tableName: 'user'
})

// 不设置tableName的话,默认生成的表格文件名字后加s并且首字母大写,例如Users
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值