Egg.js sequelize egg-sequelize-auto自动从零生成一个数据表 自动创建model

sequelize egg-sequelize-auto整个过程还是有一些坑 包括兼容性问题  依赖安装问题  需要注意  缺少一个条件 包跑不起来 或使用体验很差

1. 全局安装插件 

pnpm install -g sequelize-cli  sequelize mysql2  egg-sequelize-auto

2. 执行命令创建 migrate迁移文件 以及 model文件

npx sequelize model:generate --name Activation --attributes activationCode:string,machineCode:string,activationVersion:string,email:string

2.1执行这个命令的前提是在根目录下创建.sequelizerc文件,告诉sequelize 各个命令执行以及生成的存放目录

'use strict';

const path = require('path');

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

注意 : 生成的model 很可能用不了  因为兼容的问题 

3.给自动生成的migrate文件添加注释 

'use strict';
/** @type {import('sequelize-cli').Migration} */
module.exports = {
  async up(queryInterface, Sequelize) {
    await queryInterface.createTable('Activations', {
      id: {
        allowNull: false,
        autoIncrement: true,
        primaryKey: true,
        type: Sequelize.INTEGER
      },
      activationCode: {
        type: Sequelize.STRING,
        comment: '激活码'
      },
      machineCode: {
        type: Sequelize.STRING,
        comment: '机器码'
      },
      activationVersion: {
        type: Sequelize.STRING,
        comment: '激活版本'
      },
      email: {
        type: Sequelize.STRING,
        comment: '邮箱'
      },
      createdAt: {
        allowNull: false,
        type: Sequelize.DATE
      },
      updatedAt: {
        allowNull: false,
        type: Sequelize.DATE
      }
    });
  },
  async down(queryInterface, Sequelize) {
    await queryInterface.dropTable('Activations');
  }
};

4. 运行 Sequelize 数据库迁移的命令

这个命令会根据migrate迁移文件 , 在mysql中生成对应的表

"db": "npx sequelize db:migrate"

这个时候运行eggjs项目 ,跑不起来可能是因为第二的兼容问题 ,可以删除model下的文件 执行第五步

5. 从现有的数据库表结构生成对应的 Sequelize model模型文件

"model": "egg-sequelize-auto -o ./app/model -d sqlapplestven -h mysql.sqlpub.com -u applestven -p 3306 -x 7At1P1IH9eV",

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值