美文网首页
Midwayjs中sequelize-typescript配置及

Midwayjs中sequelize-typescript配置及

作者: 张Boy | 来源:发表于2021-05-09 18:47 被阅读0次

sequelize-typescript文档

安装sequelize-typescript插件

cnpm install --save-dev @types/node @types/validator
cnpm install sequelize reflect-metadata sequelize-typescript

在midway项目src目录下创建model文件夹,用来存储模型对象(文件夹名称可以自定义),然后在model文件夹下创建user.ts文件

import {Length, PrimaryKey,Default,HasMany,AutoIncrement,Table, Column, Model,CreatedAt,UpdatedAt,DeletedAt } from 'sequelize-typescript'
@Table({
  timestamps: true, // 自动维护时间
  tableName:"user", // 数据库表名称
  freezeTableName: true,  // 禁止修改表名,如果不写会把表名自动复数化,users
  paranoid: true, // 软删除
})
export  class User extends Model<User> {
  @AutoIncrement // 自增
  @PrimaryKey // 主键
  @Column 
  id: number;

  @Length({max:50})
  @Column
  name: string; 

  @Column({
    defaultValue:"",
    comment:"用户手机号"
  })
  phone:string;

  @Column({
    defaultValue:"",
    comment:"用户邮箱"
  })
  email:string;

  @Default(new Date())
  @CreatedAt
  @Column
  createDate: Date;

  @Default(new Date())
  @UpdatedAt
  @Column
  updateDate: Date;

  @DeletedAt
  deleteDate: Date;
}

在model文件夹下创建index.ts文件

// model多了在这里配置,用于数据库同步使用
import {User} from './User';
export default [
  User
]

编辑config目录下config.*.ts(环境配置参数),配置sequelize数据库链接参数

  export const sequelize = {
    dialect: 'mysql',
    host: '',
    port: 3306,
    database: '',
    username: '',
    password: '',
    timezone: '+08:00', // 时区
  };

编辑configuration.ts 如果没有自己在src目录下创建一个

import { Sequelize } from 'sequelize-typescript';
import { App, Configuration,Config } from '@midwayjs/decorator';
import { ILifeCycle,IMidwayContainer  } from '@midwayjs/core';
import { Application } from 'egg';
import dbArray from './model/index'
@Configuration({
  imports:[
    ...
  ],
  importConfigs: [join(__dirname, './config')],
  conflictCheck: true,
})
export class ContainerLifeCycle implements ILifeCycle {
  @App()
  app: Application;
  @Config('sequelize')
  seqConfig
  async onReady(container: IMidwayContainer) {
    const sequelize = new Sequelize(this.seqConfig)
    sequelize.addModels(dbArray)
    if (json_params.asyncdb) {
      await sequelize.sync({
        alter: true
      });
      process.exit(1);
    }
  }
}

在package.json中添加一行指令

"scripts": {
    ···
    "asyncdb": "cross-env ets && cross-env NODE_ENV=local midway-bin dev --ts --asyncdb",
    ···  
},

至此 ---

命令行以下命令即可同步数据库

npm run asyncdb 

相关文章

  • Midwayjs中sequelize-typescript配置及

    sequelize-typescript文档[https://www.npmjs.com/package/sequ...

  • sequelize-typescript安装配置

    一、安装 安装TypeScript 安装sequelize-typescript及相关库 二、配置(同TypeSc...

  • sequelize-typescript 子查询、分页、orde

    0. 实体结构 0.1 MySQL: 0.2 Sequelize-typescript Model: 1. 嵌套子...

  • sequelize-typescript 的 left join

    1. left join (相对于base_admin) sql: sequelize-typescript: 2...

  • sequelize-typescript

    注意: 注意关联的名称 例如hobbies在使用HasMany 会生成createHobby关联方法 建议根据关联...

  • Linux网络管理

    参考:* Linux中的网络管理——网络配置及命令 网络配置: ifconfig命令 网络配置文件:..网卡信...

  • Pilot配置分发机制

    Pilot负责网格中数据平面相关的配置信息的获取、生成及分发,它通过用户配置及服务注册表获取网格配置信息并将其转换...

  • spring boot框架一

    1、配置信息及引用• Yml/properties配置文件其中yml中配置信息以key/value形式呈现: 其中...

  • gradle(4)-task(1)

    gradle脚本中只有task可以让配置脚本能在执行阶段执行,其他都是在配置阶段执行. task定义及配置: //...

  • Eclipse配置Maven

    本篇文章教你如何在Eclipse中配置Maven 包含maven的下载;仓库及镜像的配置;环境变量配置;Eclip...

网友评论

      本文标题:Midwayjs中sequelize-typescript配置及

      本文链接:https://www.haomeiwen.com/subject/pqkvdltx.html