Egg-TS-Sequelize-Cli的使用

Egg 官方文档:https://eggjs.org/zh-cn/tutorials/sequelize.html

博主只是将官方文档的步骤给进行实现一下:

image-20220308152203325

安装 sequelize-cli

npm install --save-dev sequelize-cli

编写 .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'),
};

初始化配置文件

npx sequelize init:config

image-20220308152902730

根据配置文件创建数据库

set NODE_ENV=development
npx sequelize db:create

创建迁移文件

npx sequelize migration:generate --name=users

修改迁移文件为 TS 语法

将创建的迁移文件的 JS 后缀改为 .ts 结尾的:

'use strict';
import {QueryInterface} from 'sequelize';

module.exports = {
  // 在执行数据库升级时调用的函数,创建 users 表
  up: async (queryInterface:QueryInterface, Sequelize) => {
    const { INTEGER, DATE, STRING } = Sequelize;
    await queryInterface.createTable('users', {
      id: { type: INTEGER, primaryKey: true, autoIncrement: true },
      name: STRING(30),
      age: INTEGER,
      created_at: DATE,
      updated_at: DATE,
    });
  },
  // 在执行数据库降级时调用的函数,删除 users 表
  down: async (queryInterface:QueryInterface) => {
    await queryInterface.dropTable('users');
  },
};
  • 执行 migrate 进行数据库变更
npx sequelize db:migrate

image-20220308154404473

  • 在执行的时候发现报错了,因为博主已经将 .js 后缀的改为了 .ts 结尾的了,所以说按照官方文档来这一步是行不通的,所以还需要编写如下的几个步骤才可以执行迁移文件
  • package.json 中新增执行 TS 迁移文件脚本
"sequelize-cli-ts": "node -r ts-node/register ./node_modules/sequelize-cli/lib/sequelize"

执行迁移文件

npm run sequelize-cli-ts db:migrate

image-20220308154735769

image-20220308154802243

posted @   BNTang  阅读(173)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示