当前位置: 首页 > news >正文

eggjs 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",

http://www.lryc.cn/news/463422.html

相关文章:

  • 解决低版本pytorch和onnx组合时torch.atan2()不被onnx支持的问题
  • javaWeb项目-ssm+jsp房屋出租管理系统功能介绍
  • 【R语言】gadm全球行政区划数据库
  • 3万字66道Java基础面试题总结(2024版本)
  • go 环境安装
  • stereo-seq 细胞、捕获到的分子及其特征的统计描述
  • ceph rook-ceph 部署 cephobjectstore 失败
  • 1791. 找出星型图的中心节点
  • 微调小型Llama 3.2(十亿参数)模型取代GPT-4o
  • 【JavaEE】【IO】文件操作
  • commonjs和esmodule的导入导出细节
  • 【热门】用ChatGPT做智慧农业云平台——农业ERP管控系统
  • Android从上帝视角来看PackageManagerService
  • 阵列式位移计与传统测斜仪相比的优势
  • 第7章 网络请求和状态管理
  • 苍穹外卖学习笔记(二十七)
  • 使用exe4j打包jar包生成exe文件,GUI应用详细使用教程
  • go jwt 用户登录和返回用户信息 token ----important!!!
  • OpenCV高级图形用户界面(12)用于更改指定窗口的大小函数resizeWindow()的使用
  • babylonjs shader学习之copy shadertoy案例
  • Leetcode 1137. 第 N 个泰波那契数
  • Rust 语言持续崛起,即将冲击 TIOBE 指数前十,能否成为编程语言新王者?
  • Linux 手撕线程池
  • [Unity Demo]从零开始制作空洞骑士Hollow Knight第十五集:制作更多地图,更多敌人,更多可交互对象
  • 在Openshift上安装MetalLB
  • mysql其他对象
  • 英语单词之社会生活之聚会
  • Qt - 地图相关 —— 1、加载百度在线地图(附源码)
  • Elasticsearch 简单使用
  • 基于SpringBoot+Vue+uniapp微信小程序的垃圾分类系统的详细设计和实现(源码+lw+部署文档+讲解等)