# @ariga/atlas-provider-typeorm 中文文档

规范地址：https://npmcn.com/package/%40ariga/atlas-provider-typeorm/

版本：0\.3\.2
npm 元数据更新时间：2026-02-10T07:40:51.087Z
中文译文更新时间：2026-11-06T18:59:45.805Z
软件包许可：未声明

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40ariga/atlas-provider-typeorm
原文对照：https://npmcn.com/package/%40ariga/atlas-provider-typeorm/?lang=original
项目主页：https://github.com/ariga/atlas-provider-typeorm#readme
源码仓库：https://github.com/ariga/atlas-provider-typeorm

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：95.2 kB，55 个文件
- TypeScript 类型：未声明
- 运行依赖：9 个
- 首次发布：2023-10-03T07:30:55.444Z
- 最新版本发布：2026-02-10T07:40:50.589Z
- 近 30 天下载量：137667（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：24（近 12 个月 1 个）

## 中文简介

将 Typoorm 模型装入Atlas 项目.

## 安装

```sh
npm install @ariga/atlas-provider-typeorm
```

也可以使用：`pnpm add @ariga/atlas-provider-typeorm`、`yarn add @ariga/atlas-provider-typeorm`、`bun add @ariga/atlas-provider-typeorm`

## README

# 地图集提供者类型

![CI](https://github.com/ariga/atlas-provider-typeorm/actions/workflows/ci.yaml/badge.svg)

使用 [Atlas](https://atlasgo.io/) 与 [类型ORM](https://typeorm.io/) 以代码管理您的数据库计划。 通过连接您的 TypeORM 模型到 Atlas, 您可以直接用 TypeScript 或 JavaScript 定义和编辑您的计划。 然后阿特拉斯系统会自动规划和应用数据库的迁移计划, 不需要手动写入迁移.

Atlas将自动CI/CD工作流程带入您的数据库,同时提供内建支持 [测试](https://atlasgo.io/testing/schema), (中文(简体) ), [线性](https://atlasgo.io/versioned/lint), (中文(简体) ), 计划 [漂移探测](https://atlasgo.io/monitoring/drift-detection),以及 [计划监测](https://atlasgo.io/monitoring)。它也允许您以高级程序扩展 TypeORM 数据库对象,如触发器、行级安全,以及自定义功能等,不以本地方式支持.

### 使用大小写

1.  [**申报移徙**](https://atlasgo.io/declarative/apply) - 使用类似地表 `atlas schema apply --env typeorm` 命令将您的 TypeORM 方案应用到数据库.
2.  [**自动移徙规划**](https://atlasgo.io/versioned/diff) - 使用( I) `atlas migrate diff --env typeorm` 以自动规划数据库的更改和生成 a 从当前数据库版本移到您 TypeORM schema 定义的想要的版本.

## 安装

通过运行从 macOS 或 Linux 安装 Atlas :

```bash
curl -sSf https://atlasgo.sh | sh
```

见 [地图集.io](https://atlasgo.io/getting-started#installation) 用于更多的安装选项.

通过运行安装提供者 :

```bash
npm i @ariga/atlas-provider-typeorm
```

通过运行确定您的所有节点依赖性 :

```bash
npm i
```

### 独立

如果您所有的 TypeORM 实体都存在于单个节点模块中, 您可以使用提供者直接将您的 TypeORM 计划加载到 Atlas.

在您的工程目录中创建新文件 `atlas.hcl` 内容如下:

```hcl
data "external_schema" "typeorm" {
  program = [
    "npx",
    "@ariga/atlas-provider-typeorm",
    "load",
    "--path", "./path/to/entities",
    "--dialect", "mysql", // mariadb | postgres | sqlite | mssql
  ]
}

env "typeorm" {
  src = data.external_schema.typeorm.url
  dev = "docker://mysql/8/dev"
  migration {
    dir = "file://migrations"
  }
  format {
    migrate {
      diff = "{{ sql . \"  \" }}"
    }
  }
}
```

### 作为图书馆

#### 在 TS 脚本

想要使用提供者作为TS程序,可以使用提供者如下:

创建名为新文件 `load.ts` 内容如下:

```ts
#!/usr/bin/env ts-node-script

import { loadEntities } from "@ariga/atlas-provider-typeorm/build/load";

// import typeorm entities you want to load
import { User } from "./entities/User";
import { Blog } from "./entities/Blog";

loadEntities("mysql", [User, Blog]).then((sql) => {
  console.log(sql);
});
```

#### 在《联合提交的材料》中

如果您想将提供者用作JS程序,您可以使用提供者如下:

创建名为新文件 `load.js` 内容如下:

```js
#!/usr/bin/env node

const loadEntities = require("@ariga/atlas-provider-typeorm/build/load").loadEntities;
const EntitySchema = require("typeorm").EntitySchema;

// require typeorm entities you want to load
const post = new EntitySchema(require("./entities/Post"));
const category = new EntitySchema(require("./entities/Category"));

loadEntities("mysql", [post, category]).then((sql) => {
  console.log(sql);
});
```

下一步, 在您的工程目录中创建一个新文件 `atlas.hcl` 内容如下:

```hcl
data "external_schema" "typeorm" {
    program = [
        "ts-node",
        "load.ts", // for javascript: "node", "load.js"
    ]
}

env "typeorm" {
    src = data.external_schema.typeorm.url
    dev = "docker://mysql/8/dev"
    migration {
        dir = "file://migrations"
    }
    format {
        migrate {
            diff = "{{ sql . \"  \" }}"
        }
    }
}
```

## 使用量

一旦安装了提供者,您就可以使用它将您的 TypeORM 计划应用到数据库:

### 应用

你可以用这个 `atlas schema apply` 命令来规划和应用您当前 TypeORM 策略的迁移 到您的数据库。 检查目标数据库并将其与目标数据库进行比较 TypeORM计划并创建一个迁移计划. 阿特拉斯会促使你确认迁移计划 在将其应用到数据库之前.

```bash
atlas schema apply --env typeorm -u "mysql://root:password@localhost:3306/mydb"
```

这里 `-u` 旗帜接受 [網址](https://atlasgo.io/concepts/url) 页:1 目标数据库.

### 抖动

Atlas支持a [版本迁移](https://atlasgo.io/concepts/declarative-vs-versioned#versioned-migrations) 工作流程,其中对数据库的每次更改都会被版本并记录在迁移文件中. 你可以用这个 `atlas migrate diff` 命令以自动生成将迁移数据库的迁移文件 从最新版本到当前 TypeORM 计划.

```bash
atlas migrate diff --env typeorm 
```

## 支持的数据库

提供者支持下列数据库:

-   MySQL 数据
-   马里亚DB
-   邮递SQL
-   SQL 点
-   微软 SQL 服务器

## 问题

请报告本报告中的任何问题或特征要求 [阿里加/阿特拉斯](https://github.com/ariga/atlas/issues) 仓库.

## 许可证

本项目根据以下规定获得许可证: [Apache 许可证 2.0](https://npmcn.com/package/%40ariga/atlas-provider-typeorm/LICENSE)。 。 。 .

## 常见问题

### @ariga/atlas-provider-typeorm 是什么？

将 Typoorm 模型装入Atlas 项目\.

### 如何安装 @ariga/atlas-provider-typeorm？

在项目目录运行 npm install @ariga/atlas-provider-typeorm，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 atlas-provider-typeorm，可以用 npx atlas-provider-typeorm 直接运行。

### @ariga/atlas-provider-typeorm 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/ariga\_\_atlas-provider-typeorm 是否存在。

### @ariga/atlas-provider-typeorm 可以商用吗？

@ariga/atlas-provider-typeorm 使用 未声明 许可。package\.json 没有声明许可证。没有许可证的代码默认保留全部权利，商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括，不构成法律意见，请以许可原文为准。

### @ariga/atlas-provider-typeorm 的下载量有多少？

根据 npm 官方下载统计，@ariga/atlas-provider-typeorm 在 2026/10/07 – 2026/11/05 这 30 天内被下载 137,667 次，日均约 4,589 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @ariga/atlas-provider-typeorm 还在维护吗？

最新版本 0\.3\.2 发布于 2026/02/10（8 个月前）；至今共发布 24 个版本，其中过去 12 个月发布了 1 个；首次发布于 2023/10/03。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

