首页 > 数据库 >egg_创建数据库和数据表

egg_创建数据库和数据表

时间:2022-10-20 00:24:54浏览次数:43  
标签:database true egg 数据库 数据表 path config sequelize


安装mysql
 : npm i --save egg-sequelize mysql2 配置

  // config/plugin.js
  // 配置mysql插件 
  sequelize:{
    enable:true,
    package:'egg-sequelize'
  }

  //config/default.js
  // 配置数据库
  config.sequelize = {
    dialect:'mysql',
    host:'127.0.0.1', //地址
    username:'root', //账号
    password:'yjx100860', //密码
    port:3306, //端口
    database:'eggapi', //数据名称
    // 中国时区
    timezone:'+08:00',
    define:{
      // 取消数据库表名复数
      freezeTablename:true,
      // 自动写入时间戳 created_at  updated_at
      timestamps:true,
      // 字段生成软删除时间戳 deleted_at
      paranoid:true,
      createdAt:'created_at',
      updatedAt:'updated_at',
      deletedAt:'deleted_at',
      // 所有驼峰命名格式化
      underscored:true
    }

安装 sequelize-cli  :   npm install --save-dev sequelize-cli

在 egg 项目中,我们希望将所有数据库 Migrations 相关的内容都放在 database 目录下,所以我们在项目根目录下新建一个 .sequelizerc 配置文件:

'use strict';

const path = require('path');

module.exports = {
  config: path.join(__dirname, 'database/config.json'),
  'migrations-path': path.join(__dirname, 'database/migrations'),
  'seeders-path': path.join(__dirname, 'database/seeders'),
  'models-path': path.join(__dirname, 'app/model'),
};

初始化 Migrations 配置文件和目录

npx sequelize init:config
npx sequelize init:migrations

执行完后会生成 database/config.json 文件和 database/migrations 目录,我们修改一下 database/config.json 中的内容,将其改成我们项目中使用的数据库配置:

  "development": {
    "username": "root",
    "password": "yjx100860",
    "database": "eggapi",
    "host": "127.0.0.1",
    "dialect": "mysql",
    "timezone":"+08:00"
  },

创建数据库

npx sequelize db:create

 

-----------开始创建数据表------

创建数据表
npx sequelize migration:generate --name=init-users

执行完后会在 database/migrations 目录下生成一个 migration 文件(${timestamp}-init-users.js),我们修改它来处理初始化 users 表:

'use strict';

/** @type {import('sequelize-cli').Migration} */
module.exports = {
  async up (queryInterface, Sequelize) {
    const {INTEGER,STRING,DATE,ENUM} = Sequelize
    // 创建表名 : users 
    await queryInterface.createTable('users', {
      id: { 
        type: INTEGER(20).UNSIGNED, 
        primaryKey: true,  //主键
        autoIncrement: true //自增
      },
      username: {
        type:STRING(30),
        allowNull:false, //不允许为空
        defaultValue:'', //默认值为空
        comment:'用户名称', //备注用户名
        unique:true //唯一性
      },
      password:{
        type:STRING(200),
        allowNull:false,
        defaultValue:'',
      },
      avatar_url:{
        type:STRING(200),
        allowNull:false,
        defaultValue:'',
      },
      sex:{
        type:ENUM,
        values:['男','女','保密'],
        allowNull:false,
        defaultValue:'男',
        comment:'用户性别',
      },
      created_at: DATE,
      updated_at: DATE,
    });
  },

  async down (queryInterface, Sequelize) {
    // 删除数据表
    await queryInterface.dropTable('users');
  }
};

创建好后,执行代码,数据库的表才会创建

执行 migrate 进行数据库变更

# 升级数据库
npx sequelize db:migrate
# 如果有问题需要回滚,可以通过 `db:migrate:undo` 回退一个变更
# npx sequelize db:migrate:undo
# 可以通过 `db:migrate:undo:all` 回退到初始状态
# npx sequelize db:migrate:undo:all

以上就创建了数据库且创建了数据表

标签:database,true,egg,数据库,数据表,path,config,sequelize
From: https://www.cnblogs.com/qd-lbxx/p/16808307.html

相关文章

  • egg
    安装$mkdir创建目录 &&cd创建目录$npminitegg--type=simple$npmi网址//使用post会报csrftoken问题//安装:npmiegg-cors-save......
  • navicat远程连接阿里云数据库
    navicat远程连接阿里云数据库1、问题描述远程连接购买的阿里云数据库,云数据库默认的连接方式要通过白名单方式才能连接上,刚接手的二开项目,交接的人......
  • 数据库选型,技术团队与运维首先关注的内容
    数据库关注点:首先1、部署、维护的难度,文档是否齐全2、数据库对mysql语法的兼容性 3、相同配置下数据库查询速度(会执行业务相关的SQL执行性能) 4、数据库运行、查询稳定性......
  • 数据库连接池-druid-工具类和数据库连接池-druid-工具类测试
    数据库连接池-druid-工具类定义工具类:1.定义一个类JDBCUtils2.提供静态代码块加载配置文件,初始化连接池对象3.提供方法1.获取连接方法:通过数据库连接池获......
  • SQLBackupAndFTP Features & PricesDownloadBuyLinuxMore 备份数据库到对象存储
    额,最近妖孽又开始泛滥了,怎么能把数据库备份到对象存储,避免丢数据SQLBackupAndFTPDownloadSQL备份和FTP可以做什么?SQLBackupAndFTP是一款软件,用于备份SQLServer、......
  • WGCLOUD 可以监测哪些数据库?
    主流的数据库都支持,如MySQL,Oracle,PostgreSQL,SQLServer,MariaDB等......
  • django 数据库model取值转为字典(或json)
    ​方法一,使用model_to_dictfromdjango.forms.modelsimportmodel_to_dict​list=ProjectCase.objects.filter(prj_id=prj_id).order_by('-prc_id')​data=[]......
  • 数据库简介
    数据库简介概念数据库:按照数据结构来组织、存储、管理数据的仓库。诞生计算机的发明是为了做科学计算的,而科学计算需要大量的数据输入和输出。早期,可以使用打孔卡片的孔、......
  • 创建数据库和表
    想要创建数据库和v表,首先要有一个创建数据库的工具,有SQL,MySQL等等,我用的是SQLServer2019,各位可以参考一下,安装的话,可以参考这个教程进行安装https://blog.csdn.net/m0_67......
  • RedisGraph图形数据库多活设计方案
    目前CMDB使用RedisGraph存储各种关系映射数据,数据的重要性不言而喻,所以数据的防灾、高性能及高可用非常重要。目前现状RedisGraph是单节点运行,存在数据防灾、高可用、性能不......