SuperAPI AI 工具集

add-entity

编程与开发

查看项目

更新于 10-15 11:46

技能介绍

用途

add-entity 是一个面向 Activepieces 项目的开发技能,用于在需要创建新的数据库表、实体或数据模型时提供标准化的操作指引。根据其描述,该技能应在任何新的 TypeORM EntitySchema 创建场景中始终使用。

主要能力

该技能以步骤清单的形式,指导开发者完成新增数据库实体的完整流程,包括:

  • 读取参考模式:打开 packages/server/api/src/app/tables/table/table.entity.ts 作为参考。
  • 创建实体文件:在 packages/server/api/src/app/{module}/{name}.entity.ts 路径下创建实体文件。
  • 注册实体:在 packages/server/api/src/app/database/database-connection.ts 中导入并添加到 getEntities() 数组。
  • 创建迁移:按命名规则创建迁移文件,并在 packages/server/api/src/app/database/postgres-connection.ts 中导入并加入 getMigrations() 数组。
  • 创建仓库:使用 repoFactory(MyEntity) 创建仓库。
  • 验证:运行 npm run lint-dev。

使用方式

该技能通过 $ARGUMENTS 接收要创建的实体名称,并按照既定步骤执行。具体规范包括:

  • 使用 EntitySchema,而非装饰器。
  • 包含 ...BaseColumnSchemaPart(id、created、updated)。
  • 外键列使用 ApIdSchema,格式为 { ...ApIdSchema, nullable: false }。
  • 添加 projectId 列以及与 project 的关系(CASCADE 删除)。
  • 在所有连接列上添加 foreignKeyConstraintName。
  • 数组列格式为 { type: String, array: true, nullable: false }。
  • 实体必须在 database-connection.ts 的 getEntities() 数组中注册,这是必需步骤,因为 TypeORM 不会自动发现。
  • 迁移命名格式为 {Timestamp}{PascalCaseDescription},例如 AddMyFeature1774500000000。
  • 迁移需在 postgres-connection.ts 中导入并按时间顺序加入 getMigrations() 数组。
  • PGlite 环境下使用 CREATE INDEX(而非 CONCURRENTLY);若使用 CONCURRENTLY,需设置 transaction = false。
  • 仓库创建方式为 const myRepo = repoFactory(MyEntity),调用时使用 myRepo() 或 myRepo(entityManager) 以支持事务。

适用场景

适用于 Activepieces 项目中需要新增数据库表、实体或数据模型的开发场景,特别是任何新的 TypeORM EntitySchema 创建。

限制

资料中未提供关于该技能的其他限制、收费、价格、平台或效果信息。